【问题标题】:How to write logback StatusManager data to log file?如何将 logback StatusManager 数据写入日志文件?
【发布时间】:2020-07-15 16:32:57
【问题描述】:
根据logback website,我们可以将StatusManager数据写入StatusListener。
主要有 2 个状态监听器用于编写状态管理器消息。
- OnConsoleStatusListener - 在控制台上打印消息,即在 System.out 上
- OnErrorConsoleStatusListener - 在控制台上打印消息,即在 System.error 上
但我需要将那些StatusManager 消息写入错误日志。有没有办法做到这一点?
【问题讨论】:
标签:
java
logging
logback
logstash-logback-encoder
【解决方案1】:
由于 logback 没有提供 StatusListener 实现来将状态消息发送到文件,因此您需要提供自己的 ch.qos.logback.core.status.StatusListener 实现。
为简单起见,扩展 ch.qos.logback.core.status.OnPrintStreamStatusListenerBase 并覆盖其 getPrintStream() 方法以向日志文件提供 PrintStream。
然后配置 logback 以使用您的状态监听器:
<statusListener class="yourpackage.YourStatusListener" />
或者,您可以使用 logback 提供的 OnConsoleStatusListener 并将程序输出重定向到文件。