【问题标题】:How do I view java log files in Eclipse如何在 Eclipse 中查看 java 日志文件
【发布时间】:2010-11-04 04:38:38
【问题描述】:

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

【问题讨论】:

    标签: java xml eclipse logging


    【解决方案1】:

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

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

    【讨论】:

    【解决方案2】:

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

    在 Eclipse 的 Test and Performance Tools Platform Project 中提供了一些对分析日志文件的支持(这个名称比首字母缩写词还要糟糕)。我从未尝试过,但它可能对你有用。

    【讨论】:

    • 彼得,请参阅我关于 SLF4J/Logback 的说明。它就是这样做的,尽管 Thorbjørn 指出使用当前版本的 logback 时存在一个错误(Ceki 说他们正在研究解决方案)。
    • 我更喜欢不会在我的生产代码中添加依赖项的东西。特别是 SLF4J 已经让我在点版本之间进行不兼容的 API 更改,导致问题作为我的一个基于 Maven 的项目的间接依赖关系。 java.util.logging 可能并不完美,但我仍然没有看到替代方案带来的额外成本和风险的理由。
    【解决方案3】:

    另一方面,用于实时查看日志文件的出色工具是 baretail(本质上是 Windows 上的 tail -f),但可以设置为突出显示某些颜色模式,这真的很有帮助。您可以找到免费版本here

    【讨论】:

      【解决方案4】:

      根据您要执行的操作,您可能只需要为您的日志记录子系统设置一个良好的日志记录设置?

      我最近使用的一个框架使用 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 的“控制台”选项卡中得到类似于以下内容的输出。

      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
      

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

        • 是的,尽管正在开发新的改进版本。
        【解决方案6】:

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

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

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

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

        【讨论】:

          【解决方案7】:

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

          免责声明:我是 OtrosLogViewer 的作者

          【讨论】:

            猜你喜欢
            • 2011-07-23
            • 2016-03-16
            • 2013-09-23
            • 2011-02-21
            • 2019-04-05
            • 1970-01-01
            • 2011-01-15
            • 2022-10-15
            • 2011-02-21
            相关资源
            最近更新 更多