我在IBM Websphere 7上部署了非常大的Java Web应用程序,并且所有异常捕获块都使用System.out.println来记录异常,在WAS概要文件上部署的所有应用程序的System.out.println的所有输出在WAS SystemOut.log文件中打印。
我需要将WAS上的每个应用程序日志记录到不同于SystemOut.log的不同日志文件。
Log4j未与应用程序集成,启用它需要很长时间。
是否有任何技术可以为WAS上的每个应用程序更改System.out.println的输出目的地?
答案 0 :(得分:1)
所有异常捕获块都使用System.out.println来记录异常
不要这样做!使用日志框架。
Log4j未与应用程序集成,启用它需要很长时间。
那么,找到那个构建如此糟糕的应用程序并让他实施必要更改的人。
答案 1 :(得分:1)
在这个已回答的帖子中,解决方案取决于覆盖System类的out对象以使用log4j appender,我认为这是一个好主意
答案 2 :(得分:0)
您可以更改System.out和System.err在全球范围内的位置,如您对问题的评论所指出的那样,但如果您想在每个应用程序的基础上进行,我能想到的唯一解决方案就是使用诸如AspectJ之类的AOP框架来拦截相关类中的所有println调用,并将它们引导到特定于相关类的记录器。