让 syslog-ng 识别 Java 堆栈跟踪

让 syslog-ng 识别 Java 堆栈跟踪

我们使用 log4j SyslogAppender 将日志语句发送到 syslog-ng。一旦消息进入 syslog-ng,我们就很难让 syslog-ng 识别堆栈跟踪是否与相应的日志语句相关。因此,当我们过滤消息时(我们这样做是为了分离出用于监控警报的 ERROR 级别语句),堆栈跟踪就会丢失。有人知道是否可以这样做吗?我们在 Gentoo 上使用 syslog-ng 3.1.4 版的开源版本。

答案1

我对 Syslog-ng 不是特别熟悉,但我知道在常规 syslog 和 rsyslog 中,换行符表示新消息。我认为您必须从堆栈跟踪中删除所有换行符才能实现此功能,这显然会使堆栈跟踪非常难以阅读。

答案2

我最终编写了一个自定义 Syslog Appender,它在堆栈跟踪的每一行上放置了适当的前缀,以便堆栈跟踪行可以通过我们的 syslog 过滤器正确排序。它并不完美,但运行得足够好。

相关内容