java实时读取log日志文件

2018-07-21 15:55:42 灵羽扬整理 读取日志文件 读取日志文件

java读取实时日志文件

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

package zipfile;import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;public class FromEndRF {
public static void main(String args[]){
RandomAccessFile rf=null;
try {
rf=new RandomAccessFile("H:/JSP/tech/login.jsp","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){//处理文件末尾是空行这种情况
nextend--;
rf.seek(nextend);
continue;}
System.out.println(line);
nextend--;
}
nextend--;
rf.seek(nextend);
if(nextend==0){//当文件指针退至文件开始处,输出第一行
System.out.println(rf.readLine());
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
finally{
try {
rf.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
这是读取文件的最后一行,然后倒着往上一行一行输出,应该看的懂吧?

Q2:java中文件读取的时候,要被读取的文件应该放哪

你创建一个File的对象
File f = new File("d:111aaa.txt")
这样就是 d盘 111文件夹下的aaa.txt文件了
相对路径你就放在你的java文件的目录下 直接 .aaa.txt 就行

Q4:java log日志的问题

首先,配置成每天生成的话,.log文件的路径是不会改变的,比如,日志文件是log.log,那么这个文件在第二天会被备份为2013-01-07.log,但是同时会再生成一个log.log文件,所以不会影响你的路径
其次,如果这个日志文件一直被系统在添加日志的话,那么该文件应该是被加锁的,其他程序只能读不能修改和删除,所以如果该情况下你一定要隔几天清空一次,一是修改生成日志的系统,让其定时清除日志文件内容,二是写脚本或程序,先停掉系统,再清空日志,然后重启系统。这种方法,不建议采用。
强烈建议,采用第一种方法,然后修改你的读取日志的程序,每天读取一下前一天生成的日志文件内容就可以了,因为备份文件是用日期命名的,利用这个规律,很容易就可以获取到要读取的文件名了


来自:求助得到的回答

小提示:内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

读取日志文件 推荐文章:
推荐不满意?点这里  ››  

读取日志文件