java - 当自定义日志文件中记录错误时,System.out 中发出警告

标签 java log4j

目前,我们在 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/

相关文章:

java - log4j 用于独立的 java 项目

java - 每个动态日志记录类别可插入附加程序?

java - 我应该使用哪个API来登录java

java - 插入文档时达到最大池大小时出现 ConnectionPoolTimeoutException

java - Spring 异步 REST 与 DeferredResult 和 Reactor

java - 一个显示给定类的 javadoc 的 java 程序

java - 如何使用 JSR-363 定义自定义单位(或预定义数量) "roll"?

java - 如何使用 log4j 禁用 PubNub 的 okhttp3.internal.platform.Platform.log?

log4j初始化期间的log4j日志消息

java - SSL 破损管道