获取syslog-ng来识别java stacktrace

我们使用log4j SyslogAppender将我们的日志语句发送到syslog-ng。 一旦这些消息在syslog-ng中,我们就无法使syslog-ng识别出一个堆栈跟踪与适当的日志语句。 因此,当我们过滤消息(我们分离出用于监视警报的ERROR级别语句)时,堆栈跟踪会丢失。 有谁知道是否有可能做到这一点? 我们在Gentoo上使用syslog-ng版本3.1.4的开源版本。

我对Syslog-ng没有特别的了解,但是我知道在普通的syslog和rsyslog中,新的一行表示一条新消息。 我想你必须从堆栈跟踪中除去所有新的行字符才能工作,这显然会使堆栈跟踪很难阅读。

我最终编写了一个自定义的Syslog Appender,在stacktrace的每一行放置适当的前缀,以便堆栈跟踪行可以通过我们的系统日志filter正确sorting。 这不是完美的,但它工作得很好。