4

我有一个应用程序,用于log4j将其日志发送syslog到中央日志记录应用程序。虽然 log4j 成功发送了 app 消息,但消息本身没有 syslog 标头(包含时间戳、主机名等)。

我试图弄清楚如何将 syslog 标头附加到应用程序的每个日志行。

下面是我的配置

log4j.logger.com.axeda.esrs=INFO, SYSLOG log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.ConversionPattern=%d{ISO8601}: %m%n log4j.appender.SYSLOG.SyslogHost=syslog_destination
log4j.appender.SYSLOG.Facility=LOCAL0
log4j.appender.SYSLOG.FacilityPrinting=false

我在conf中添加了以下属性:

log4j.appender.SYSLOG.Header=true

但是重新启动该过程后,我在日志文件中收到以下错误:

log4j:WARN No such property [header] in org.apache.log4j.net.SyslogAppender

您能告诉我如何将 syslog 标头添加到每个日志事件中。

log sample currently in use without the syslog header: <134>2012-11-02 16:22:30,451: EMC Policy Manager Audit: Fri Nov 02 16:22:30 CEST 2012, CK0000000, System, Remote Session 5171112upPI4v4Hp3FrHJbSOxiHZ7aEp3crZNwngP8ZrLw625 started on device CK292603612 with model Symmetrix-GW by remote user 00000 from enterprise servicelinkcluster at Fri Nov 02 16:19:52 CEST 2012

谢谢!

4

2 回答 2

0

您使用的是旧的 log4j 版本吗?SyslogAppender 上的 header 属性是在 1.2.15 中添加的。当我将现有系统配置为登录到 Papertrail 时,我看到了同样的警告,我发现我的构建过程中的某些东西正在拉入较旧的 log4j 版本。

于 2013-11-22T03:57:49.970 回答
0

我认为 header 的 H 必须很小......所以属性名称必须是 log4j.appender.SYSLOG.header=true。

通过查看类文件,它看起来标题是类http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SyslogAppender.html的属性。因此,在定义属性时,我们以 LOWER_CHAR 开头...您可以尝试一下...

于 2012-11-28T17:41:31.597 回答