监听文件是否添加

当前项目需要读取日志信息,向监听日志更新的动态。

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

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

1、Tailer类

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

2、TailerListener类

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

3、TailerListenerAdapter类

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

三个都是 org.apache.commons 中的类

测试代码:

 public static void main(String[] args) {TailerListener listener = new TailerListenerAdapter() {@Overridepublic void handle(String line) {try {log.info("日志新增的内容为:" + line);} catch (Exception e) {log.error("发生异常:" + e.getMessage());}}};Tailer tailer = new Tailer(new File(需要监听的文件地址),listener, Integer.valueOf(1000), true);tailer.run();}

java实现监听文件相关推荐

  1. Java实现监听文件变化的三种方法,推荐第三种

    背景 在研究规则引擎时,如果规则以文件的形式存储,那么就需要监听指定的目录或文件来感知规则是否变化,进而进行加载.当然,在其他业务场景下,比如想实现配置文件的动态加载.日志文件的监听.FTP文件变动监 ...

  2. Java实时监听文件夹,实现实时监听微信接收的文件,去掉文件的只读属性

    前言 众所周知,小而美软件每次更新都不干人事啊.上次忘了哪个版本更新的,接收到的文件一律是只读文件,虽然只需要右键属性把只读勾选去掉就行,但是每次接收了个文件都要这么做属实是有点麻烦.所以就自己写了个 ...

  3. java 接口文件夹_Java NIO.2 使用Path接口来监听文件、文件夹变化

    Java7对NIO进行了大的改进,新增了许多功能: •对文件系统的访问提供了全面的支持 •提供了基于异步Channel的IO 这些新增的IO功能简称为 NIO.2,依然在java.nio包下. 早期的 ...

  4. Java 使用Tailer类监听文件

    线程创建的三种方式:   FileDataListener listener = new FileDataListener(path,this);         //使用单线程池线程监听文件     ...

  5. JAVA实现监听U盘插入 扫描文件

    JAVA实现监听U盘插入 想用Java实现监听USB端口是否有移动设备插入,然后操作移动设备内的文件.网站查找资料后发现有个jsr-80的项目,下面先介绍一下什么是JSR:JSR是Java Speci ...

  6. java jmenu 监听_Java中用得比较顺手的事件监听

    第一次听说监听是三年前,做一个webGIS的项目,当时对Listener的印象就是个"监视器",监视着界面的一举一动,一有动静就触发对应的响应. 一.概述 通过对界面的某一或某些操 ...

  7. JDK的一个Bug,监听文件变更要小心了

    背景 在某些业务场景下,我们需要自己实现文件内容变更监听的功能,比如:监听某个文件是否发生变更,当变更时重新加载文件的内容. 看似比较简单的一个功能,但如果在某些JDK版本下,可能会出现意想不到的Bu ...

  8. Hutool操作和监听文件

    目录 1 文件监听简单使用 1.1 WatchMonitor 1.2 内部应用 1.3 监听指定事件 1.4 监听全部事件 1.5 延迟处理监听事件 2 文件的读取 3 文件的写入 4 文件追加 5 ...

  9. hutool工具包Tailer类监听文件的bug

    使用hutool工具包Tailer类监听文件内容时,如果文件忽然被清空后在重新写入,此时无法监听到文件第一行数据 解决方法: 复写cn.hutool.core.io.file包下LineReadWat ...

最新文章

  1. 写给刚入门的前端工程师的前后端交互指南
  2. 【数据结构-查找】1.通俗易懂讲解 —— 顺序-折半-分块查找
  3. 蓝桥杯java第六届决赛第一题--分机号
  4. access找不到输入表或者dual_在Access窗体中显示指定路径的图片
  5. 模板:拓展kmp(Z函数)
  6. 利用redis保存验证码并设置过期时间
  7. JDK 13:VM.events已添加到jcmd
  8. 变通实现微服务的per request以提高IO效率(三)
  9. 在linux搭性能测试环境,性能测试学习第七天-----JMeter之linux环境部署篇
  10. Omnibus test
  11. HDU2551 竹青遍野【数学计算+水题】
  12. DJ 算法的队列优先优化
  13. ubuntu服务器无法运行chromedriver解决方法(转)
  14. webrtc2sip项目说明
  15. ActiveMQ入门系列三:发布/订阅模式
  16. ValueError: continuous format is not supported
  17. Inflate使用小结
  18. macOS FileVault2 command
  19. 与二次元老婆邂逅的游戏的创建过程(一)
  20. 基于BP神经网络的PID控制,神经网络算法pid控制

热门文章

  1. 红米note2能刷机没显示无服务器,红米Note2刷机之后一直停留在开机界面修复教程...
  2. 用 Python 实现股票指数移动平均线
  3. 如何解决Myeclipse不能自动编译
  4. 【运筹学】线性规划 最优解分析 ( 唯一最优解 | 无穷多最优解 | 无界解 | 无可行解 | 迭代范围 | 求解步骤 )
  5. *1 计算机基础和操作系统基础及几大协议
  6. 动态加载script 加载完成回调事件
  7. [人物]一个预言家的命运:忽悠了马云的“骗子”,风口上的先知
  8. [C++]C++中的延时方法总结
  9. 力扣算法学习计划打卡:第一天
  10. java对接快递100追踪物流信息