带条件-全文检索-反向查询log告警日志文件(windows、linux通用)

从日志文件 XXX.log 最后一个字符开始往前查询

条件:根据关键字 “warning” 去查询

代码复制即用,只需修改要查询的文件路径(filePath)和条件关键字(warning)改成自己的即可:

public class TTT {
  public static void main(String[] args) {
     RandomAccessFile rf = null;
     try {
       String filePath = "C:\\Users\\admin\\Desktop\\test.log";//路径改为自己文件的所在路径
       rf = new RandomAccessFile(filePath, "r");
       long len = rf.length();//获取字节数
       long start = rf.getFilePointer();//获取当前指针
       long nextend = start + len - 1;
       String line;
       rf.seek(nextend);//定位文件指针在文件中的位置。参数nextend确定读写位置距离文件开头的字节个数,比如seek(0)就是定位文件指针在开始位置。是绝对定位
       int c = -1;
        while (nextend > start) {
          c = rf.read();
          if (c == '\n' || c == '\r') {
             line = rf.readLine();
             if (line != null && line.contains("warning")) {// 判断条件 warning为关键字
                String s = new String(line.getBytes("ISO-8859-1"), "UTF-8");
                System.out.println(s);
              }
              nextend--;
           }
           nextend--;
           rf.seek(nextend);
           if (nextend <= start) {// 当文件指针退至文件开始处,结束
              break;
           }
          }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rf != null)
                    rf.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
   }
}

运行后的结果:

我的log文件截图:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值