问题标签 [apache-tailer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 文件拖尾无法使用 Apache Commons io 的 TailerListenerAdapter
我想使用 Java 跟踪文件内容。我尝试使用 Apache commons io 的 Tailer 和 TailerListenerAdapter。我在所需依赖项的类路径中包含了storm-core-1.1.1.jar。程序编译并运行;但是 TailerListenerAdapter 的 'handle' 方法根本没有被调用,并且执行卡在 main 方法中。以下是代码:
javascript - 为什么tail long file crash chrome?
我的目标是实时显示日志文件。我正在通过 websocket 执行此操作,但是当 html 的段落('p')开始变大(450 行)时,Chrome 开始滞后并崩溃。
实现是这样的:
为什么会这样?
java - 如何在 Spring Boot 应用程序中使用 Apache Tailer?
主要问题
我正在编写一个应用程序(可在 GitHub 上获得- 构建/运行说明如下),它会抓取日志文件并对写入日志的某些事件做出反应(在这种情况下,向 REST API 发出 HTTP 请求)。我选择了 Java、Spring Boot 2.x、Apache Tailer和OpenFeign作为实现这一目标的主要工具。
我怀疑我不了解 Apache Tailer 及其在后台执行的线程如何工作,或者如何在 Spring Boot 应用程序中正确利用它。Tailer
在 Spring Boot 应用程序的上下文中初始化和运行 a 的正确方法是什么?
附加信息
为了测试这一点,我在本地启动应用程序,并通过 shell 将文本行回显到给定的日志文件中。在撰写本文时(提交1fed906),当我运行该应用程序时,似乎:
Tailer 初始化(我可以看到
TailerListenerAdapter.init()
在TailerListenerAdapter
我构建它时调用)Tailer 运行(我看到我写到它监视传递到的日志文件的所有内容
TailerListenerAdapter.handle()
)。
一旦我在日志中写了一些东西,我的 TailerListenerAdapter 知道它应该做出反应,它看起来就像控制从Tailer.run()
方法调用中退出,并且应用程序退出(优雅地)。我希望它继续运行并跟踪日志,直到我停止应用程序。
我不确定Tailer.run()
在这种情况下在哪里调用,所以我@PostConstruct
在自定义 Tailer 子类中的一个方法中使用了它。我以前从未使用@PostConstruct
过,所以我不能 100% 确定我是否正确使用它,或者是否有更好的地方放置它以确保run()
在启动时调用它同时还允许我注入我的所有配置-file / bean 驱动选项。
构建/运行说明
- 克隆项目
在 shell 中运行它:
mvn spring-boot:run -Dspring-boot.run.arguments=--tailer.logFile=/path/to/any/test.log,--logging.level.com.github.ubunfu.mclogbot=DEBUG
或者
在 IDE 中设置等效的运行配置。有一个 application-local.yml Spring Boot 配置文件,其中包含指定测试日志文件路径的位置。在 IntelliJ 中,使用以下内容设置 Maven 运行配置
Command Line
:spring-boot:run -Dspring-boot.run.arguments=--spring.profiles.active=local