使用 SyslogAppender 在 log4j 中添加自定义字段

Posted

技术标签:

【中文标题】使用 SyslogAppender 在 log4j 中添加自定义字段【英文标题】:Adding a custom field in log4j using SyslogAppender 【发布时间】:2017-02-23 13:31:26 【问题描述】:

我在我的 java 应用程序中使用 SyslogAppender,并且我正在尝试将自定义字段添加到生成的日志中。如何向我的 log4j.properties 添加其他字段?

我当前的 log4j.properties(最后一行显示了我想要实现的目标):

log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.threshold=INFO
log4j.appender.SYSLOG.syslogHost=localhost
log4j.appender.SYSLOG.facility=LOCAL4
log4j.appender.SYSLOG.header=true
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.conversionPattern=my-app: %m%n
log4j.appender.SYSLOG.applicationName=$STACKNAME

$STACKNAME 是部署作业配置的系统属性,具体取决于环境(例如 prod、test、dev)。

【问题讨论】:

【参考方案1】:

从this answer 我得到答案:添加行

log4j.appender.graylog2.additionalFields='filed_name': 'field_value', 'field2_name': 'field2_value'
log4j.appender.graylog2.addExtendedInformation=true

field_namefield2_name 添加到值 field_valuefield2_valueaddExtendedInformation=true 属性表示 Graylog 将这些字段添加到所有日志条目中。

【讨论】:

以上是关于使用 SyslogAppender 在 log4j 中添加自定义字段的主要内容,如果未能解决你的问题,请参考以下文章

在 Alfresco 的 log4j.properties 中配置 SyslogAppender

log4j SyslogAppender - TCP 支持?

log4j SyslogAppender 不会将日志发送到 syslog

SyslogAppender 不工作

Log4J 2 Syslog Appender 无法正常工作

Logback SyslogAppender stacktrace 日志记录前缀