5

我在托管在 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

Websphere 添加了直到“O”的所有内容。其余的来自 Logback

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

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

4

2 回答 2

3

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

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

于 2012-08-08T19:11:26.657 回答
2

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

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

于 2012-08-08T20:16:40.787 回答