「java读取日志文件」java读取日志文件指定内容

博主:adminadmin 2023-03-19 05:59:07 654

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

本文目录一览:

java定时读取日志文件

import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.io.RandomAccessFile;

import java.io.ByteArrayInputStream;

class Reader implements Runnable {

Reader(String filename) {

this.filename = filename;

}

private String filename;

private long filelength = 0;

private int count=0;

@Override

public void run() {

while (true) {

try {

File f = new File(filename);

long nowlength = f.length();

long readlength = nowlength - filelength;

if (readlength == 0) {

Thread.sleep(1000);

continue;

}

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

// 移动文件指针到上次读的最后

rf.seek(filelength);

filelength=nowlength;

byte[] b = new byte[(int) readlength];

rf.read(b, 0, b.length);

rf.close();

BufferedReader br=new BufferedReader(new InputStreamReader(new ByteArrayInputStream(b)));

String str=null;

count++;

System.out.println("第"+count+"次读到的内容:");

while((str=br.readLine())!=null){

System.out.println(str);

}

br.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

class Writer implements Runnable{

Writer(String filename) {

this.filename = filename;

}

private String filename;

private int count=0;

@Override

public void run() {

while (count++100){

try {

PrintWriter pw=new PrintWriter(new FileWriter(filename,true));

pw.append(""+count).append("\t").append(""+System.currentTimeMillis()).append("写入的内容").append("\r\n");

pw.close();

Thread.sleep(100);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

public class ReadFileFromTrail {

public static void main(String[] args) {

Reader reader=new Reader("d:\\test.log");

Writer writer=new Writer("d:\\test.log");

new Thread(reader).start();

new Thread(writer).start();

}

}

log4j的使用,即java该如何使用日志文件

java使用日志文件log4j的方法:

1、 新建一个Java工程,导入Log4j包,pom文件中对应的配置代码如下:

!-- log4j support --

dependency

   groupIdlog4j/groupId

   artifactIdlog4j/artifactId

   version1.2.17/version

/dependency

2、resources目录下创建log4j.properties文件

### 设置###

log4j.rootLogger = debug,stdout,D,E

### 输出信息到控制抬 ###

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target = System.out

log4j.appender.stdout.layout = org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=/home/duqi/logs/debug.log ###

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = /home/duqi/logs/debug.log

log4j.appender.D.Append = true

log4j.appender.D.Threshold = DEBUG

log4j.appender.D.layout = org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=/home/admin/logs/error.log ###

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender

log4j.appender.E.File =/home/admin/logs/error.log

log4j.appender.E.Append = true

log4j.appender.E.Threshold = ERROR

log4j.appender.E.layout = org.apache.log4j.PatternLayout

log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

3、输出日志的例子如下

package com.javadu.log;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

public class Log4JTest {

   private static final Logger logger = LoggerFactory.getLogger(Log4JTest.class);

   public static void main(String[] args) {

       // 记录debug级别的信息

       logger.debug("This is debug message.");

       // 记录info级别的信息

       logger.info("This is info message.");

       // 记录error级别的信息

       logger.error("This is error message.");

   }

}

4、输出结果

首先,控制台输入如下图所示:

然后,查看/Users/duqi/logs目录下的debug.log和error.log文件,内容分别如下,可以看出:

如何查找本地日志文件 java

这个日志文件应该由程序员自己指定吧?建议去了解一下log4j,如果是部署到Tomcat容器中,可以查看Tomcat安装目录中的logs文件夹,里面存放了一些日志文件,不管是System.out.println()方法,还是别的信息(如异常)都可以查看

java log日志的问题

首先,配置成每天生成的话,.log文件的路径是不会改变的,比如,日志文件是log.log,那么这个文件在第二天会被备份为2013-01-07.log,但是同时会再生成一个log.log文件,所以不会影响你的路径

其次,如果这个日志文件一直被系统在添加日志的话,那么该文件应该是被加锁的,其他程序只能读不能修改和删除,所以如果该情况下你一定要隔几天清空一次,一是修改生成日志的系统,让其定时清除日志文件内容,二是写脚本或程序,先停掉系统,再清空日志,然后重启系统。这种方法,不建议采用。

强烈建议,采用第一种方法,然后修改你的读取日志的程序,每天读取一下前一天生成的日志文件内容就可以了,因为备份文件是用日期命名的,利用这个规律,很容易就可以获取到要读取的文件名了

用java如何读取linux中的某个文件

java是跨平台语言,在linux上读文件跟在windows上读文件是一样的 只是文件路径不一样,可以用File对象和FileInputSteam来读取。但要注意文件编码问题。

如果有中文请做适当的编码转换,通常情况下Linux的默认字符编码为UTF-8编码方式,项目可以直接采用utf8编码方式操作.用System.getProperty("file.encoding")可检查系统编码格式。可改操作系统的文件系统编码,vi /etc/profile,在文件末尾加上

export LANG="zh_CN.GBK"

export LC_ALL="zh_CN.GBK"

编码转换代码:new String(files[i].getName().getBytes("GBK"),"UTF-8");

文件操作的核心代码请参考下面代码:

String path= "/home/";

path= "/home/multiverse/Repository/PMEPGImport";

File file=new File(path);

File[] tempList = file.listFiles();

for (int i = 0; i tempList.length; i++) {

if (tempList[i].isFile()) {

//FileInputStream fis = new FileInputStream("fileName");

//InputStreamReader isr = new InputStreamReader(fis,"utf-8");

StringBuffer buffer = new StringBuffer();

String text;

BufferedReader input = new BufferedReader (new FileReader(tempList[i]));

while((text = input.readLine()) != null)

buffer.append(text +"/n"); }

if (tempList[i].isDirectory()) {

System.out.println("文件夹:"+tempList[i]);

}

}

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