我在托管在Websphere App Server上的应用程序中使用Logback。Logback被配置为注销到系统(其他人在更改为其他文件时犹豫不决)。问题是Websphere使用自己的格式登录到系统。在我的应用程序中执行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 app登录到单独的文件,但对于这个项目,我被告知系统输出的文件是由第三方监控的,我不应该改变使用系统输出。考虑到这些需求,有没有办法绕过我的问题,告诉Websphere不要把我的系统搞得一团糟,还是唯一的解决方案是开始记录到不同的文件?谢谢!
发布于 2012-08-09 04:16:41
我不认为你能够改变格式。如果可以的话,它可能会打破当前的监控。
我想知道是否有人会介意您同时登录到两个记录器,SystemOut用于现有的监控,而您自己的用于更具可读性的格式。
发布于 2012-08-09 03:11:27
您的登录配置为将消息写入System.out。但是,写入System.out的所有内容都由WebSphere重定向,并以与WebSphere生成的日志消息相同的格式写入SystemOut.log文件,但带有严重性指示符"O“。这是不可能改变的。
请注意,告诉您使用SystemOut.log的人实际上意味着您应该确保日志记录是使用WebSphere日志系统完成的,以便使用正确的类别和严重性编写消息,并且可以在运行时更改日志级别。由于WebSphere的日志系统是在java.util.logging上构建的,因此您可能应该将logback替换为slf4j-jdk14,以满足他们的需求。
https://stackoverflow.com/questions/11854221
复制相似问题