「java抓取日志」java 日志记录

博主:adminadmin 2023-01-18 04:42:09 291

今天给各位分享java抓取日志的知识,其中也会对java 日志记录进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

【java 数据库】如何取出数据库的记录日志

这些是要联接到数据库的,但是操作记录需要在程序上做处理,可以这样处理

1、建立一个操作记录表,字段大概可以为:id、操作类型、操作人、操作时间等

2、封装一个类,在每次有操作的将这些操作的记录写到数据库中,然后需要的时候读取出来

Java 如何获取控制台日志输出的信息

很简单的,如果你查api文档会发现类System有个“字段摘要”,很容易发现有个out,

它返回static PrintStream,还会发现System有个方法是static void setOut(PrintStream out)

重新分配“标准”输出流。 再点击PrintStream,很明显它是OutputStream

的子类 解决如下

输出流重定向

import java.io.*;

public class IO2File {

public static void main(String[] args) throws IOException {

File f=new File("out.txt");

f.createNewFile();

FileOutputStream fileOutputStream = new FileOutputStream(f);

PrintStream printStream = new PrintStream(fileOutputStream);

System.setOut(printStream);

System.out.println("默认输出到控制台的这一句,输出到了文件 out.txt");

}

}

java怎么读取windows 事件日志 文件

您好,很高兴为您解答。日志文件在哪个目录,用fileinputstream读文件就行了

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.List;

public class FileReaderTest {

static ListString logs = new ArrayListString();

public static ListString readFile(File f) throws IOException {

if (f == null || !f.exists()) {

return null;

}

ListString list = new ArrayListString();

String encoding = "UTF-8";

InputStreamReader read = new InputStreamReader(new FileInputStream(f),

encoding);

BufferedReader br = new BufferedReader(read);

String line = null;

请教大神!!!!:怎么使用java代码获取git提交日志信息

String localRepoGitConfig = "D:/test/.git"; //路径

Git git = Git.open(new File(localRepoGitConfig));

git.log().call().forEach(i-System.out.println(i.getFullMessage()));

怎么用java读取windows系统日志

您好,很高兴为您解答。

获取相关信息的简单的方法

import java.io.*;

import com.sun.management.OperatingSystemMXBean;

import sun.management.ManagementFactory;

public class Tst{

       publicstatic String pt="D:\\abc.txt";

       publicTst(){

       }

       public static void main(String[] args) throws Exception{

              //free和use和total均为KB

              longfree=0;

              longuse=0;

              longtotal=0;

              intkb=1024;

              Runtimert=Runtime.getRuntime();

              total=rt.totalMemory();

              free=rt.freeMemory();

              use=total-free;

              System.out.println("系统内存已用的空间为:"+use/kb+"MB");

              System.out.println("系统内存的空闲空间为:"+free/kb+"MB");

              System.out.println("系统总内存空间为:"+total/kb+"MB");

              OperatingSystemMXBeanosmxb = (OperatingSystemMXBean) 

ManagementFactory.getOperatingSystemMXBean();

              longphysicalFree=osmxb.getFreePhysicalMemorySize()/kb;

              longphysicalTotal=osmxb.getTotalPhysicalMemorySize()/kb;

              longphysicalUse=physicalTotal-physicalFree;

              Stringos=System.getProperty("os.name");

              System.out.println("操作系统的版本:"+os);

              System.out.println("系统物理内存已用的空间为:"+physicalFree+"MB");

              System.out.println("系统物理内存的空闲空间为:"+physicalUse+"MB");

              System.out.println("总物理内存:"+physicalTotal+"MB");

       // 获得线程总数

       ThreadGroup parentThread;

        for(parentThread = Thread.currentThread().getThreadGroup(); 

parentThread

                .getParent() != null; parentThread= 

parentThread.getParent())

            ;

        inttotalThread = parentThread.activeCount();

       System.out.println("获得线程总数:"+totalThread);

       }    

}

// 3.操作系统信息

// a)取到当前操作系统的名称:

public String getPlatformName() {

  String hostname = "";

  try 

{

   hostname = InetAddress.getLocalHost().getHostName();

  } catch 

(Exception exc) {

   Sigar sigar = new Sigar();

   try {

    hostname = 

sigar.getNetInfo().getHostName();

   } catch (SigarException e) 

{

    hostname = "localhost.unknown";

   } finally 

{

    sigar.close();

   }

  }

  return hostname;

 }

 // b)取当前操作系统的信息

 public void testGetOSInfo() {

  OperatingSystem OS = 

OperatingSystem.getInstance();

  // 操作系统内核类型如: 

386、486、586等x86

  System.out.println("OS.getArch() = " + 

OS.getArch());

  System.out.println("OS.getCpuEndian() = " 

+OS.getCpuEndian());//

  System.out.println("OS.getDataModel() = " 

+OS.getDataModel());//

  // 系统描述

  System.out.println("OS.getDescription() 

= " +OS.getDescription());

  System.out.println("OS.getMachine() = " 

+OS.getMachine());//

  // 操作系统类型

  System.out.println("OS.getName() = " + 

OS.getName());

  System.out.println("OS.getPatchLevel() = " 

+OS.getPatchLevel());//

  // 操作系统的卖主

  System.out.println("OS.getVendor() 

= " + OS.getVendor());

  // 

卖主名称

  System.out

    .println("OS.getVendorCodeName() = " 

+OS.getVendorCodeName());

  // 

操作系统名称

  System.out.println("OS.getVendorName() = " 

+OS.getVendorName());

  // 

操作系统卖主类型

  System.out.println("OS.getVendorVersion() = " 

+OS.getVendorVersion());

  // 

操作系统的版本号

  System.out.println("OS.getVersion() = " 

+OS.getVersion());

 }

// 4.资源信息(主要是硬盘)

 // 

a)取硬盘已有的分区及其详细信息(通过sigar.getFileSystemList()来获得FileSystem列表对象,然后对其进行编历):

 public 

void testFileSystemInfo() throws Exception {

  Sigar sigar = new 

Sigar();

  FileSystem fslist[] = sigar.getFileSystemList();

  //String dir 

= System.getProperty("user.home");// 当前用户文件夹路径

  for (int i = 0; i  

fslist.length; i++) {

   System.out.println("\n~~~~~~~~~~" + i 

+"~~~~~~~~~~");

   FileSystem fs = fslist[i];

   // 

分区的盘符名称

   System.out.println("fs.getDevName() = " 

+fs.getDevName());

   // 分区的盘符名称

   System.out.println("fs.getDirName() = 

" +fs.getDirName());

   System.out.println("fs.getFlags() = " + 

fs.getFlags());//

   // 文件系统类型,比如 

FAT32、NTFS

   System.out.println("fs.getSysTypeName() = " 

+fs.getSysTypeName());

   // 

文件系统类型名,比如本地硬盘、光驱、网络文件系统等

   System.out.println("fs.getTypeName() = " 

+fs.getTypeName());

   // 文件系统类型

   System.out.println("fs.getType() = " 

+fs.getType());

   FileSystemUsage usage = null;

   try {

    usage = 

sigar.getFileSystemUsage(fs.getDirName());

   } catch (SigarException e) 

{

    if (fs.getType() == 2)

     throw 

e;

    continue;

   }

   switch (fs.getType()) {

   case 0: // 

TYPE_UNKNOWN :未知

    break;

   case 1: // 

TYPE_NONE

    break;

   case 2: // TYPE_LOCAL_DISK : 本地硬盘

    // 

文件系统总大小

    System.out.println(" Total = " +usage.getTotal() + 

"KB");

    // 文件系统剩余大小

    System.out.println(" Free = " +usage.getFree() 

+ "KB");

    // 文件系统可用大小

    System.out.println(" Avail = " 

+usage.getAvail() + "KB");

    // 文件系统已经使用量

    System.out.println(" Used 

= " +usage.getUsed() + "KB");

    double usePercent = usage.getUsePercent() * 

100D;

    // 文件系统资源的利用率

    System.out.println(" Usage = " + usePercent 

+"%");

    break;

   case 3:// TYPE_NETWORK :网络

    break;

   case 

4:// TYPE_RAM_DISK :闪存

    break;

   case 5:// TYPE_CDROM 

:光驱

    break;

   case 6:// TYPE_SWAP 

:页面交换

    break;

   }

   System.out.println(" DiskReads = " 

+usage.getDiskReads());

   System.out.println(" DiskWrites = " 

+usage.getDiskWrites());

  }

  return;

 }

如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

                                                                                                                           ~ O(∩_∩)O~

java快速读取日志文件最后一行数据,日志文件非常大。

package cn.com.songjy.test.io;  

  

import java.io.FileNotFoundException;  

import java.io.IOException;  

import java.io.RandomAccessFile;  

  

/** 

 * 从最后一行开始读取 

 */  

public class FromEndRF {  

  

    /** 

     *  

     * @param filename 目标文件 

     * @param charset 目标文件的编码格式 

     */  

    public static void read(String filename, String charset) {  

  

        RandomAccessFile rf = null;  

        try {  

            rf = new RandomAccessFile(filename, "r");  

            long len = rf.length();  

            long start = rf.getFilePointer();  

            long nextend = start + len - 1;  

            String line;  

            rf.seek(nextend);  

            int c = -1;  

            while (nextend  start) {  

                c = rf.read();  

                if (c == '\n' || c == '\r') {  

                    line = rf.readLine();  

                    if (line != null) {  

                        System.out.println(new String(line  

                                .getBytes("ISO-8859-1"), charset));  

                    } else {  

                        System.out.println(line);  

                    }  

                    nextend--;  

                }  

                nextend--;  

                rf.seek(nextend);  

                if (nextend == 0) {// 当文件指针退至文件开始处,输出第一行  

                    // System.out.println(rf.readLine());  

                    System.out.println(new String(rf.readLine().getBytes(  

                            "ISO-8859-1"), charset));  

                }  

            }  

        } catch (FileNotFoundException e) {  

            e.printStackTrace();  

        } catch (IOException e) {  

            e.printStackTrace();  

        } finally {  

            try {  

                if (rf != null)  

                    rf.close();  

            } catch (IOException e) {  

                e.printStackTrace();  

            }  

        }  

    }  

  

    public static void main(String args[]) {  

        read("mynewfile.txt", "UTF-8");  

    }  

}

说明:以上是一个倒着读取文件的案例,可以根据此案例,结合自己的实际需求来设计自己的代码。另外,如果是web应用或其它持续型应用,可以尝试利用单独线程保持文件打开或将读取位置存储在内存中。

java抓取日志的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 日志记录、java抓取日志的信息别忘了在本站进行查找喔。