我在Eclipse中运行一些JUnit测试,我的代码使用java日志API生成XML日志文件。 (java.util.logging中)。除了读取原始XML之外,还有一种简单的方法可以在Eclipse中查看此XML日志输出吗?具体来说,我希望能够轻松查看不同日志消息的来源。
答案 0 :(得分:4)
我一直在使用SLF4J日志记录API以及Logback日志记录实现。可以将SLF4J配置为将java.util.logging,log4j,jakarta commons日志记录和SLF4j API中的日志消息映射到公共中间形式。另一方面,消息可以通过java.util.logging,log4j或Logback生成。这是一种运行良好的灵活方法,尤其是当您拥有使用不同日志记录API的组件时。
Logback的一个好处是您可以将其配置为将日志消息的副本发送到Eclipse plug-in。该插件允许您以各种方式查看和过滤日志文件。消息包含生成它们的线程,因此它听起来像你应该检查的东西。
答案 1 :(得分:2)
我认为你正在寻找我想要的东西。我找到了UtilLogger4E,但是我开始了自己的项目(EDevTools LogViewer),因为它有一些缺少的功能而且不是开源。
它具有从文件或可配置套接字读取Java Util Logging XML日志的能力,在表中按级别显示它们,并且一次可以显示多个日志(通过多个视图实例)。
Java Util Logging具有将日志发送到套接字(SocketHandler)的内置功能,它必须仅由配置文件设置。
查看LogViewer答案 2 :(得分:2)
如果您想使用不基于eclipse的日志查看器,我建议您OtrosLogViewer。我可以导入java.util.logging XML格式和SimpleFormat。
免责声明:我是OtrosLogViewer的作者
答案 3 :(得分:1)
我总是希望为java.util.logging / Eclipse组合找到类似Apache Chainsaw的东西,即Eclipse中监听端口的日志查看器和直接编写的java.util.logging.Handler实现那个。但我还没有找到这样的东西,也没有绕过写一个。到目前为止,我只使用合适的纯文本格式登录控制台。不优雅,没有方便的过滤选项,但它完成了这项工作。编写自己的自定义格式化程序并不难。
在Eclipse的Test and Performance Tools Platform Project中分析日志文件有一些支持(名称甚至比首字母缩略词更差)。我从来没有尝试过,但它可能对你有用。
答案 4 :(得分:1)
就在侧面,一个用于实时查看日志文件的优秀工具是无效的(在Windows上基本上是一个尾部-f),但可以设置为突出某些颜色的模式,这可以真正帮助。您可以找到免费版here。
答案 5 :(得分:1)
根据您正在尝试做的事情,您可能只需要为日志记录子系统设置良好的日志记录设置?
我最近使用的框架使用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
答案 6 :(得分:0)
我不知道Eclipse如何知道你的线程。如果是XML,则需要编写一个可以使用XPath查找线程消息并将其打印出来的解析器。但这取决于你 - Eclipse无法读懂你的想法。
您必须找到一个XSL-T样式表,它可以获取log4j生成的XML流并提取您想要的线程。