1

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

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

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

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

4

3 回答 3

1

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

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

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

好吧,然后找到构建如此糟糕的应用程序的人并让他实施必要的更改。

于 2012-11-08T09:49:16.567 回答
1

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

StdOutErrLog

于 2012-11-08T10:16:33.360 回答
0

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

于 2012-11-08T09:57:25.170 回答