目前,我们在 WebSphere Portal Server 上运行了相当多的应用程序,其中大多数都有自己的日志文件,因此 System.out 不会太过载。然而,一旦应用程序中发生错误,就很容易被忽视。如果记录了错误,我希望在 System.out 中收到警告,并通知您查看相关的日志文件。现在,我通过将 log4j 记录器包装到一个具有与记录器类相同方法的类中来做到这一点,并且它只是将所有调用委托(delegate)给记录器。仅当调用错误消息和致命消息方法时,才会从记录器中检索要记录的文件,并将警告写入 System.out。这工作正常,除了现在 LoggerWrapper 是记录器方法的调用者,因此作为调用者而不是原始调用者写入日志文件。
有没有办法解决这个问题,甚至可能采用完全不同的方法?我希望避免重写所有异常处理程序来将消息添加到 System.out 本身。
基督教
最佳答案
您可以简单地配置 Log4J 附加程序来写入 stdout(或者在本例中为 stderr)。这是标准方式。通过将日志阈值设置为WARNING,可以过滤掉大量日志消息。
代价是错误消息将同时出现在 stderr 和日志文件中,但对我来说这不是问题。事实上,它可能有助于查找与给定 stderr 消息相对应的特定日志。
关于java - 当自定义日志文件中记录错误时,System.out 中发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3657199/