java - Apache Commons IO Tailer 示例

标签 java apache-commons-io

我正在开发一个读取/var/log/auth.log 文件的监控程序。我正在使用 Apache Commons IO Tailer类实时读取文件。首先,我想在一个简单的文件上测试实时阅读部分,并在控制台行中手动输入一些代码。这是我的代码:

public class Main {
    public static void main(String[] args) {
        TailerListener listener = new MyListener();
        Tailer tailer = Tailer.create(new File("log.txt"), listener, 500);
        while(true) {

        }
    }
}

public class MyListener extends TailerListenerAdapter {
    @Override
    public void handle(String line) {
        System.out.println(line);
    }
}

从终端:sudo echo "Hello">> log.txt 问题是当我尝试在文件中手动写入内容时,它不会在控制台中打印出来。我试图找到使用 Tailer 类的具体示例,但没有成功。我在这里做错了什么?

最佳答案

根据我的测试,Tailer 只会在您向文件添加换行符时打印一行。所以尝试 sudo echo "Hello\n">> log.txt

另请注意,如果您调用 create,您将启动一个线程但没有处理它。因此,为什么你必须有一个 while/true 循环。

你可以试试这个:

public static void main(String[] args) {
    TailerListener listener = new MyListener();
    Tailer tailer = new Tailer(new File("log.txt"), listener, 500);        
    tailer.run();
}

关于java - Apache Commons IO Tailer 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22987170/

相关文章:

java - Eclipse Helios 给出错误 Java 已启动但返回退出代码 -805306369

java - 为什么总是调用父类(super class)构造函数

java - 排除文件过滤器

java - Struts2 Hibernate(返回一个列表,导致 hibernate 从所有关系中获取数据)

java - Maven 无法下载,因为 Maven Central 出现 PKIX 错误

java - FileUtils.copyUrlToFile 不工作

java - URL 的 commons io 403 但 httpclient 没问题

java - CloseShieldInputStream 与 NoCloseInputStream

java - GlassFish 服务器安装可执行文件无法打开

java - 从Java中的文本文件中读取特定行