问题标签 [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 - 如何避免 TailerListener 中的旧日志消息
我正在使用 Apache Commons Tailer API 来监控日志文件。
每当我重新启动应用程序时,也会显示旧的日志消息。相反,应该只显示新的日志消息。
如何避免这种获取旧日志消息的行为?
java - Apache Commons IO Tailer 提供旧的日志消息
我的代码如下。
这里getLogPattern()
返回一个ArrayList
包含值,如 [info,error,abc.catch,warning]。运行此代码时,我收到旧日志消息,然后是新日志消息。即输出是这样的:
如何避免从这样的日志文件中获取旧的日志消息?
java - 拖尾文件时Java中的巨大虚拟内存
我使用 commons IO 中的 Apache Tailer 在机器上的许多日志文件上制作了一个类似于“tail -f”的程序。基本上它在一个线程中运行,将文件作为 RandomAccessFile 打开,检查它的长度,寻找到最后等。它将收集到的所有日志行发送到客户端。
有点不舒服的是,在 Linux 上它可以显示大量的 VIRT 内存。现在它说 16.1g VIRT (!!) 和 203m RES。
我已经阅读了一些关于虚拟内存的内容,并了解到它通常“没什么好担心的”。但是仍然是 16 GB?真的很健康吗?
当我用 pmap 查看进程时,没有显示任何日志文件名,所以我猜它们不是内存映射的。我读到(man pmap)pmap 输出的“映射”列中的“[anon]”意味着“分配的内存”。这是什么意思?:)
但是, pmap -x 显示:
..所以我想它毕竟不是驻留在RAM中。但是当打开这样的文件,寻找它的结尾等时,它是如何在内存方面工作的?
我应该担心所有 GB 的 VIRT 内存吗?它现在“监视” 84 个不同的日志文件,这些文件在磁盘上的总大小为 31414239 字节。
编辑: 我只是在另一台不太“类似生产”的 Linux 机器上对其进行了测试,但没有得到相同的数字。VIRT 最多达到〜2,5 GB。我发现一些默认的 JVM 设置是不同的(用“java -XX:+PrintFlagsFinal -version”检查):
..所以,嗯..我猜它在大型机器上占据了更多堆,因为最大限制(方式)更高?而且我还认为始终明确指定这些值是个好主意。
java - 未找到页面弹簧
我正在尝试渲染视图。我正在使用 apache tails、jetty 和 Spring。我在general.xml 中映射了视图。当我单击表 users 上的 id 以查看单个用户的视图时,页面崩溃。
通用.xml
用户控制器.java
users.jsp 的一部分
用户详细信息.jsp
web.xml
java-8 - 在 JVM 中创建文件时,commons-io Tailer 未调用 handle()
我有一个可用的 Tailer 实现(commons-io Tailer)这是我的 Tailer:
和我的测试:
在自省 bos 的内容时,它是空的,但日志文件包含 2 行:
如果我将测试指向使用 bash 脚本创建和写入的文件:
然后它完美地工作。然而,当我在测试运行程序中创建文件时,Tailer 处理程序永远不会调用我的侦听器。我尝试在单独的线程中创建我的文件,还尝试写入不是由测试创建的现有文件,还尝试在将文件交给 Tailer 观看后写入我的测试中的文件,等等。没有任何效果。我似乎在测试运行程序中尝试写入文件的任何尝试都不会导致 TailerListener 触发 handle() 方法。我在 Eclipse 内使用 Java 8 在 Windows 7 上运行它。有没有人对使用运行测试的 JVM 写入的文件对 TailerListener 的 handle() 方法进行单元测试的经验?
谢谢。
java - 裁缝不要停止
我在我的程序中实现了一个tailerListener,但是当我启动它时,它永远不会停止。
这是我的程序:
与我的班级 MyTailerListener
一开始,我设法去了tailer.stop(所以我的程序停止了,很棒)但是在写了一些其他的行并触及了几件事之后,它就不再起作用了。
奇怪的是,当我将 MyTailerListener 替换为:
我刚刚从答案中挑选出来,但它与我的文件无关。然后我的程序就停止了……</p>
我认为这是因为它找不到 matcher.group(1)。当我删除除第一个以外的所有 sysout 时,我的程序不会停止。
java - 使用 Tailer 和 WatchService
我使用以下代码同时使用 Tailer 和 WatchService:
但问题是:我只想用tailer检查一个文件(比如停止线程,但我不能停止特定于文件的线程),当我通过echo命令写入文件时,并不是所有的我写的信出现了。
当我连续多次用回声写相同的文本时,所有的字母都被写了。
我看到了这个主题,How to tail -f the latest log file with a given pattern,但我不知道我是否可以将它用于我的问题(我不知道tail和tailer之间的区别)。
java - 获取输出控制台尾部并保存到字符串 Java?
我使用 apache tailer 读取行尾,如果在文件日志中添加新行,程序将只打印行尾,就像 linux 中的“tail -f”,我有输出尾要使用字符串发送。
我可以获取输出尾部并保存到下面的代码的字符串吗?
当我在上面运行程序时,它直接输出控制台
java - Apache commons IO Tailer 理解
我们计划使用 Apache Commons IO Tailer 进行实时日志解析。我想了解 Tailer 是如何在内部工作的,就好像我将延迟参数指定为 500 毫秒并且密钥以非常高的速率不断生成,那么它是否能够解决这个目的。
例子:
Tailer 已经处理到 x 行,现在它等待 500 毫秒并再次出现。
问题:
- 它是从之前所在的行开始,还是每次都从第一行开始。
- Tailer 如何处理实时生成数据的文件,它会继续拖尾文件并且永远不会停止拖尾(在这种情况下,延迟永远不会出现)
java - Apache Tailer 在 20 行后停止处理
我有以下代码,
这是我用于拖尾服务的总代码,我有一个包含超过100K行的文件,但拖尾只打印前20行。
我所缺少的,我也尝试过使用这样的线程。