在WAS 7上更改特定Web应用程序的System.out.println输出目标

时间:2012-11-08 09:47:45

标签: java logging log4j websphere-7

我在IBM Websphere 7上部署了非常大的Java Web应用程序,并且所有异常捕获块都使用System.out.println来记录异常,在WAS概要文件上部署的所有应用程序的System.out.println的所有输出在WAS SystemOut.log文件中打印。

我需要将WAS上的每个应用程序日志记录到不同于SystemOut.log的不同日志文件。

Log4j未与应用程序集成,启用它需要很长时间。

是否有任何技术可以为WAS上的每个应用程序更改System.out.println的输出目的地?

3 个答案:

答案 0 :(得分:1)

  

所有异常捕获块都使用System.out.println来记录异常

不要这样做!使用日志框架。

  

Log4j未与应用程序集成,启用它需要很长时间。

那么,找到那个构建如此糟糕的应用程序并让他实施必要更改的人。

答案 1 :(得分:1)

在这个已回答的帖子中,解决方案取决于覆盖System类的out对象以使用log4j appender,我认为这是一个好主意

StdOutErrLog

答案 2 :(得分:0)

您可以更改System.out和System.err在全球范围内的位置,如您对问题的评论所指出的那样,但如果您想在每个应用程序的基础上进行,我能想到的唯一解决方案就是使用诸如AspectJ之类的AOP框架来拦截相关类中的所有println调用,并将它们引导到特定于相关类的记录器。