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

Java 在WAS 7上更改特定web应用程序的System.out.println输出目标,java,logging,log4j,websphere-7,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的输出目

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

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

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

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

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

别这样!使用日志框架

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


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

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

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


是的,但这将再次将整个JVM的所有
System.out
System.err
输出发送到同一个文件。OP希望它与每个webapp分开。如果你读了aomar写的东西,那就是应用程序。复数的有许多应用程序,都部署在一个容器中,都记录到标准输出。WTF的矿井越来越深。