log4j属性错误

时间:2012-11-28 16:10:14

标签: java log4j

我有一个应用程序使用log4j通过syslog将其日志发送到中央日志记录应用程序。尽管log4j成功发送了应用程序消息,但消息本身没有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

谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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