截取log中耗时超过三秒的方法的RequestId和耗时,并按耗时降序排序把结果输出到文件

该博客介绍了两种Java方法来读取日志文件,提取耗时超过三秒的请求ID及其耗时,并按耗时降序将结果写入新文件。第一种方法使用Java IO流,通过BufferedReader逐行读取,然后进行字符串操作筛选信息。第二种方法借助Google的Guava库,利用LineProcessor处理每一行,同样进行筛选并排序。
摘要由CSDN通过智能技术生成

第一种:java IO流

public class ReadLog  throw Exception{

Hash<String,Integer> resultMap =new HashMap<>();
//要读取的log文件
File fileRead =new File("D:\log-1.log");

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileRead),"UTF-8"));
//把ETL的结果输出到这个文件
File fileWrite = new File("D:\out.txt");
//加true,意思是追加数据,默认不加是覆盖
BufferWriter writer = new BufferWriter(new OutputStreamWriter(new FileOutputStream(fileWrite,true),"UTF-8"));

String s = "";
while((s = bf.readLine()) != null){
 //截取requestId
 String  requestId = "";
 int begin = s.indexOf("[RequestId-")+11;//[RequestId-有十一个字符串
 int end = s.indexOf("] INFO");
 if(end>begin){//为了防止下标越界
  requestId = s.substring(begin,end);//substring是包前不包后
 }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值