Java Websphere与Logback日志一起记录到系统输出-格式化问题

Java Websphere与Logback日志一起记录到系统输出-格式化问题,java,jakarta-ee,logging,websphere,logback,Java,Jakarta Ee,Logging,Websphere,Logback,我正在Websphere App Server上托管的应用程序中使用Logback。Logback被配置为注销系统(其他人不愿意更改为其他文件)。问题在于Websphere使用自己的格式来登录系统。在我的应用程序中执行logger.debug(“测试”)会产生: [8/7/12 12:27:55:629 CDT] 0000003a SystemOut O DEBUG com.myapp... test 其中,直到“O”的所有内容都是由Websphere添加的。其余的是Logback的

我正在Websphere App Server上托管的应用程序中使用Logback。Logback被配置为注销系统(其他人不愿意更改为其他文件)。问题在于Websphere使用自己的格式来登录系统。在我的应用程序中执行
logger.debug(“测试”)
会产生:

[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 app登录到单独的文件,但是对于这个项目,我被告知System Out文件由第三方监控,我不应该改变使用System Out。考虑到这些需求,有没有办法绕过我的问题,告诉Websphere不要干扰我的系统日志记录,或者是开始记录到其他文件的唯一解决方案?谢谢

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


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

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


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

他说他们需要SystemOut.log,因为该文件由第三方监控,这对我来说并不奇怪。我们有自己监视日志文件的外部工具,尽管我们可以告诉这些工具监视其他文件。(IMO,如果你能说服第三方为你监控一个额外的文件,那就更好了,尽管如果格式不同,他们的监控也可能需要改变。)两个记录器是个好主意。如果开发团队有自己的一个日志文件,而监控团队有一个单独的日志文件,那就太好了。