2009-06-19 47 views
7

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

回答

0

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

您将不得不找到一个XSL-T样式表,它可以将log4j生成的XML流取出并取出所需的线程。

+0

笔者的线程是的java.util.logging输出的一部分。请参阅http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.html#2.4 – 2009-06-19 01:04:03

1

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

在Eclipse的Test and Performance Tools Platform Project(名称甚至比首字母缩写词更糟糕)中分析日志文件有一些支持。我从来没有尝试过,但它可能对你有用。

+0

Peter,请参阅我在SLF4J/Logback上的说明。虽然Thorbjørn指出在使用当前版本的logback时存在一个错误(Ceki表示他们正在开发一个解决方案),但它正是这样做的。 – 2009-06-19 16:41:21

+0

我更喜欢一些不会将依赖项添加到我的生产代码中的东西。特别是SLF4J已经让我在点发布之间做出了不兼容的API更改,从而导致了我的一个基于Maven的项目间接依赖的问题。 java.util.logging可能并不完美,但我仍然没有看到由替代方案引入的额外成本和风险的理由。 – 2009-06-25 08:05:15

1

刚上侧,在实时查看日志文件的一个很好的工具是baretail(基本上是Windows上的尾-f),但是可以设置以突出的颜色,可以真正帮助某些模式。你可以找到一个免费版本here

+0

感谢您的链接 – akf 2009-06-19 01:41:03

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 
4

我一直在使用SLF4J日志API再加上Logback日志实现。 SLF4J可以配置为将java.util.logging,log4j,jakarta公共日志记录和SLF4j API中的日志消息映射到通用中间表单。另一方面,消息可以通过java.util.logging,log4j或Logback生成。这是一种运行良好的灵活方法,特别是当您的组件使用不同的日志记录API时。

Logback的一个好处是您可以配置它将日志消息的副本发送到Eclipse plug-in。该插件允许您以各种方式查看和过滤日志文件。消息包含生成它们的线程,所以它听起来像是你应该检查的东西。

2

我认为你正在寻找我正在寻找的相同的东西。我找到了UtilLogger4E,但是我开始了我自己的项目(EDevTools LogViewer),因为它有一些缺失的功能,而不是开源的。

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

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

你可以看看LogViewer中的:如果你想使用的不是基于Eclipse的日志查看器http://sourceforge.net/projects/edevtools/

2

,我建议你OtrosLogViewer。我可以导入java.util.logging XML格式和SimpleFormat。

免责声明:我OtrosLogViewer