【问题标题】:Websphere with Logback logging to system out - formatting issue带有 Logback 日志记录到系统输出的 Websphere - 格式问题
【发布时间】:2012-08-07 21:11:40
【问题描述】:

我在托管在 Websphere App Server 上的应用程序中使用 Logback。 Logback 被配置为登录到 System Out(而其他人则不愿更改为不同的文件)。问题是 Websphere 使用自己的格式登录到 System Out。在我的应用程序中执行 logger.debug("test") 会产生:

[8/7/12 12:27:55:629 CDT] 0000003a SystemOut     O DEBUG com.myapp... test

直到“O”的所有内容都由 Websphere 添加。其余部分来自 Logback

我已将 Logback 设置为使用以下模式:%-5level %logger{36} - %msg%n 这样我就不会重复 Websphere 自己执行的时间戳和线程信息,但我仍然很生气,因为我无法完全自定义日志记录从 Logback 中输出系统。

我对记录最佳实践知之甚少。以前,我已经通过 Web 应用程序登录到单独的文件,但是对于这个项目,我被告知 System Out 文件由第三方监控,我不应该改变使用 System Out。鉴于这些要求,有什么办法可以解决我的问题并告诉 Websphere 不要弄乱我的 System Out 日志记录,或者是开始记录到不同文件的唯一解决方案?谢谢!

【问题讨论】:

    标签: java jakarta-ee logging websphere logback


    【解决方案1】:

    您的 logback 配置为将消息写入 System.out。但是,写入System.out 的所有内容都由WebSphere 重定向并写入SystemOut.log 文件,格式与WebSphere 生成的日志消息相同,但带有严重性指示符“O”。这是不可能改变的。

    请注意,告诉您使用SystemOut.log 的人很可能实际上意味着您应该确保使用 WebSphere 的日志系统完成日志记录,以便以正确的类别和严重性写入消息,并且日志级别可以是在运行时更改。由于 WebSphere 的日志系统是基于 java.util.logging 构建的,您可能应该将 logback 替换为 slf4j-jdk14 以满足他们的要求。

    【讨论】:

    • 他说他们需要 SystemOut.log,因为该文件由第 3 方监控,这对我来说并不奇怪。我们有自己监控日志文件的外部工具,尽管我们可以告诉这些工具监控其他文件。 (IMO,如果你能说服第三方为你监控一个额外的文件会更好,尽管如果格式不同,他们的监控也可能不得不改变。)
    【解决方案2】:

    我认为您无法更改格式。如果可以的话,它可能会破坏当前的监控。

    我想知道是否有人会介意您是否同时登录两个记录器,SystemOut 用于现有监控,而您自己的用于更易读的格式。

    【讨论】:

    • 两个记录器是个好主意。如果开发团队有自己的一个日志文件,而监控团队有一个单独的日志文件,那就太好了。
    猜你喜欢
    • 2021-03-15
    • 2017-10-25
    • 1970-01-01
    • 2014-10-24
    • 2015-11-25
    • 2017-09-18
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    相关资源
    最近更新 更多