Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Eclipse中查看java日志文件_Java_Xml_Eclipse_Logging - Fatal编程技术网

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

如何在Eclipse中查看java日志文件,java,xml,eclipse,logging,Java,Xml,Eclipse,Logging,我正在Eclipse中运行一些JUnit测试,我的代码正在使用java日志API生成一个XML日志文件。(java.util.logging)。除了读取原始XML之外,在Eclipse中是否还有一种查看此XML日志输出的简单方法?具体来说,我希望能够轻松查看不同日志消息来自哪些线程。我不知道Eclipse如何了解您的线程。如果是XML,则需要编写一个解析器,该解析器可以使用XPath查找线程消息并将其打印出来。但这取决于你——Eclipse无法读懂你的心思 您必须找到一个XSL-T样式表,该样式

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

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


您必须找到一个XSL-T样式表,该样式表可以获取log4j生成的XML流并提取您想要的线程

我一直希望找到类似java.util.logging/Eclipse组合的东西,即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
我一直在使用日志API和日志实现。SLF4J可以配置为将java.util.logging、log4j、jakarta commons logging和SLF4J API中的日志消息映射到公共中间形式。另一方面,可以通过java.util.logging、log4j或Logback生成消息。这是一种灵活的方法,效果很好,特别是当您有使用不同日志API的组件时


关于Logback的一个好处是,您可以将其配置为将日志消息的副本发送到。该插件允许您以多种方式查看和过滤日志文件。消息包含生成它们的线程,因此听起来像是您应该签出的内容。

我想您正在查找与我相同的内容。我找到了UtilLogger4E,但我启动了自己的项目(EDevTools LogViewer),因为它缺少一些功能,并且不是开源的

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

Java Util日志记录有一个内置功能,可以将日志发送到套接字(SocketHandler),它只能由配置文件设置


您可以在以下位置查看日志查看器:

如果您想使用不基于eclipse的日志查看器,我建议您使用。我可以导入java.util.logging XML格式和SimpleFormat


免责声明:我是OtrosLogViewer的作者

该线程是java.util.logging输出的一部分。看到了吗,虽然有一个新的和改进的版本正在进行中。Peter,请参阅我关于SLF4J/Logback的说明。虽然Thorbjørn指出在使用当前版本的logback时存在一个bug(Ceki说他们正在开发一个解决方案),但我更喜欢不在我的产品代码中添加依赖项的东西。特别是SLF4J在点版本之间进行不兼容的API更改已经让我非常恼火,这导致了我的一个基于Maven的项目的间接依赖性问题。java.util.logging可能并不完美,但我仍然看不到替代方案增加成本和风险的理由。