繁体   English   中英

如何在 Eclipse 中查看 java 日志文件

[英]How do I view java log files in Eclipse

我正在 Eclipse 中运行一些 JUnit 测试,我的代码正在使用 java 日志 API 生成一个 XML 日志文件。 (java.util.logging)。 除了读取原始 XML 之外,是否有一种简单的方法可以在 Eclipse 中查看此 XML 日志输出? 具体来说,我希望能够轻松查看不同的日志消息来自哪些线程。

我一直在使用SLF4J日志 API 和Logback日志实现。 SLF4J 可以配置为将 java.util.logging、log4j、jakarta commons logging 和 SLF4j API 中的日志消息映射为通用中间形式。 另一方面,消息可以通过 java.util.logging、log4j 或 Logback 生成。 这是一种非常有效的灵活方法,尤其是当您拥有使用不同日志记录 API 的组件时。

Logback 的一个好处是您可以将其配置为将日志消息的副本发送到Eclipse 插件 该插件可让您以多种方式查看和过滤日志文件。 消息包含生成它们的线程,所以听起来你应该检查一下。

如果你想使用不是基于 eclipse 的日志查看器,我推荐你OtrosLogViewer 我可以导入 java.util.logging XML 格式和 SimpleFormat。

免责声明:我是 OtrosLogViewer 的作者

我想你正在寻找我一直在寻找的东西。 我找到了UtilLogger4E,但我开始了我自己的项目(EDevTools LogViewer),因为它缺少一些功能并且不是开源的。

它能够从文件或可配置套接字读取 Java Util Logging XML 日志,在表格中按级别显示它们,并且一次可以显示多个日志(通过多个视图实例)。

Java Util Logging 具有将日志发送到套接字(SocketHandler)的内置功能,它只能由配置文件设置。

您可以在以下位置查看 LogViewer: http : //sourceforge.net/projects/edevtools/

我一直希望为 java.util.logging/Eclipse 组合找到类似Apache Chainsaw 的东西,即 Eclipse 中的日志查看器,它侦听端口和直接写入端口的 java.util.logging.Handler 实现。 但我还没有找到这样的东西,也没有写一篇。 到目前为止,我只是使用合适的纯文本格式登录到控制台。 不优雅,也没有方便的过滤选项,但它可以完成工作。 编写自己的自定义格式化程序一点也不难。

在 Eclipse 的测试和性能工具平台项目中有一些对分析日志文件的支持(这个名字甚至比缩写更糟糕)。 我从来没有尝试过,但它可能对你有用。

顺便说一句,实时查看日志文件的一个很好的工具是baretail(本质上是Windows上的tail -f),但可以设置为突出显示某些确实有帮助的颜色模式。 您可以在此处找到免费版本。

取决于您正在尝试做什么,您可能只需要为您的日志记录子系统设置一个好的日志记录设置?

我最近使用的一个框架使用 slf4j 进行日志记录,通过提供以下 log4j 配置,我可以查看哪些线程输出什么:

log4j.rootLogger = trace, default
log4j.appender.default = org.apache.log4j.ConsoleAppender
log4j.appender.default.layout = org.apache.log4j.PatternLayout
log4j.appender.default.layout.ConversionPattern = %-4r [%t] %-5p %c %x - %m%n

在我的情况下,当我运行我的 junit 测试时,我在 eclipse 的 Console 选项卡中得到类似于以下的输出。

0    [pool-1-thread-1] INFO  com.example.BaseTest  - Server listening on port 9090
35   [NioProcessor-6] INFO  org.apache.mina.filter.logging.LoggingFilter  - CREATED
35   [NioProcessor-1] INFO  org.apache.mina.filter.logging.LoggingFilter  - CREATED

我不明白 Eclipse 如何知道您的线程。 如果是 XML,则需要编写一个解析器,可以使用 XPath 查找线程消息并将它们打印出来。 但这取决于您 - Eclipse 无法读取您的想法。

您必须找到一个 XSL-T 样式表,它可以采用 log4j 生成的 XML 流并拉出您想要的线程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM