引言

这几天需要做一个需求,需求就是监控第三方运行程序的日志,提取关键字并预警这个功能。那么我们如果用java去实现这个监控日志的功能呢?

用线程的方式来监控log日志文件

我们首先要了解以下这三个类

1、Tailer类

Tailer类的主要作用是采用线程的方式去监控日志文件的内容,简单的理解就是文件内容的跟随器,当文件内容发生变化时它就能捕获到新增内容的信息,可以理解为我们在linux服务器中常用的“tail -f”命令。

2、TailerListener类

TailerListener类是一个接口类,由TailerListenerAdapter类去实现这个类。本文来源于公众号:【Java学习提升】 专注于Java领域技术分享,Java知识体系学习、分享面试经验,让我们结伴而行,共同成长!​

3、TailerListenerAdapter类

TailerListenerAdapter类可以捕获到日志新增加的内容,我们的业务代码会写在这里进行相关逻辑处理。

下面我们用例子来说明一下,本实例是基于springboot实现的。

yml文件配置:

# 监控日志的全路径
logPath: D:/dd.log
# 监控日志时间间隔
sleepInterval: 1000

java代码:

@Component
public class SmsStarted implements ApplicationRunner {
 
 protected final static Logger log = LoggerFactory.getLogger(ServletContextAware.class);

@Value("${logPath}")
 private String logPath;
 @Value("${sleepInterval}")
 private String sleepInterval;

@Autowired
 private ISmsInfoService smsInfoService;

@Override
 public void run(ApplicationArguments args) throws Exception {
   TailerListener listener = new TailerListenerAdapter() {
     @Override
     public void handle(String line) {
       try {
         log.info("日志新增的内容为:" + line);
       } catch (Exception ex) {
         log.error("发生异常:" + ex.getMessage());
       }

}
   };
   Tailer tailer = new Tailer(new File(logPath), listener, Integer.valueOf(sleepInterval), true);
   tailer.run();
 }
}

运行结果如下图所示:

上面就是我们通过java来实现对日志文件的内容监控,我们可以在handle()方法里面做我们业务逻辑上的处理就可以了

原创声明:本文为【Java学习提升】原创博文,转载请注明出处。

本文来源于公众号:【Java学习提升】 专注于Java领域技术分享,Java知识体系学习、分享面试经验,让我们结伴而行,共同成长

基于springboot来实现对日志文件内容的监控相关推荐

  1. linux view查看日志命令,linux查看日志文件内容命令tail、cat、tac、head、echo、vi

    linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log 你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, --------- ...

  2. linux日志手机,通过 shell 脚本 自动发送 log日志 文件内容 到手机邮箱

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 需要用到 mail 命令 如果你的系统中没有安装需要执行 (yum install -y mail sendmail) 安装 sendmail 是因为需要 ...

  3. springboot项目输入打印日志文件到本地

    springboot项目输入打印日志文件到本地 pom.xml中添加jar包: <dependency><groupId>ch.qos.logback</groupId& ...

  4. java查看日志命令_[Java教程]【Linux】linux查看日志文件内容命令tail、cat、tac、head、echo...

    [Java教程][Linux]linux查看日志文件内容命令tail.cat.tac.head.echo 0 2017-11-14 12:00:29 linux查看日志文件内容命令tail.cat.t ...

  5. linux view查看日志命令,【Linux】linux查看日志文件内容命令tail、cat、tac、head、echo...

    linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log 你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, --------- ...

  6. linux查看日志文件内容命令tail、cat、tac、head、echo、vi

    linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log 你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, --------- ...

  7. Linux命令--more(查看日志文件内容,排查问题)

    原文网址:Linux命令--more(查看日志文件内容,排查问题)_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Linux的more命令的用法. more命令适用于查看比较大的文件,例如:日 ...

  8. python 实时监控日志文件_Python动态监控日志的内容

    日志文件一般是按天产生,则通过在程序中判断文件的产生日期与当前时间,更换监控的日志文件 程序只是简单的示例一下,监控test1.log 10秒,转向监控test2.log 程序监控使用是linux的命 ...

  9. linux查看日志文件内容命令tail、cat、tac、head、echo

    当日志文件存储日志很大时,我们就不能用vi直接进去查看日志,需要Linux的命令去完成我们的查看任务. Log位置:/var/log/message 系统启动后的信息和错误日志,是Red Hat Li ...

最新文章

  1. linux编译cmake
  2. char varchar java_在数据库中varchar与char的区别
  3. Ybt#452-序列合并【期望dp】
  4. 使用各类BeanUtils的时候,切记注意这个坑!
  5. x61 linux 驱动 无线网卡,Linux环境Thinkpad X61 4G内存Mtrr表错误
  6. wait方法为什么要放在循环里
  7. topjui中combobox使用
  8. c语言二进制转十六进制代码,C语言--二进制转十六进制
  9. eTerms3无法启动
  10. 面部关键特征点(Landmark)的定位
  11. idea中数据库可视化
  12. 从输入 URL 开始,聊一聊浏览器、网络等相关的知识
  13. 项目经理的知识和技能,学会这些你就是合格的PM
  14. Gradle build.gradle配置
  15. SQL Studio
  16. c++中无名命名空间的使用
  17. linux环境变量、交叉编译工具链gcc
  18. 用记账本记录借款、还款管理
  19. 【嵌入式linux】imx6ul中断学习笔记
  20. 信贷违约风险预测(四)训练模型

热门文章

  1. [人工智能-深度学习-74]:环境 - Git、Github、Gitlab、Gitee区别与联系
  2. 99物联 外接IPEX AFW125TO
  3. 第三篇:基于深度学习的人脸特征点检测 - 数据集整理
  4. 基地树洞 | 自动化小系列之整合篇
  5. dc游戏java_超级名模帝国(DC出品)
  6. 绕过网站安全狗,方法 适合所有
  7. 网络大学计算机统考缺考,网络教育统考弃考了会怎么样 统考弃考或缺考有什么影响...
  8. 解决搜狗浏览器下载文件小括号乱码的问题
  9. 基于Flask/Opencv/Dlib课堂人脸签到系统
  10. 会考计算机资料,高中计算机会考选择题资料(全)