问题描述
Log4j可以使用syslog附加程序将日志发送到Papertrail(文档):
Log4j can send logs to Papertrail using a syslog appender (documentation):
log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.syslog.Facility=LOCAL7
log4j.appender.syslog.FacilityPrinting=false
log4j.appender.syslog.Header=true
log4j.appender.syslog.SyslogHost=<host>.papertrailapp.com:XXXXX
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.syslog.layout.ConversionPattern=%p: (%F:%L) %x %m %n
注意方便的ConversionPattern
属性.
我设法为log4j2进行了类似的滚动:
I have managed to get something similar rolling for log4j2:
Syslog:
name: Syslog
id: [my-id]
appName: [my-app]
protocol: UDP
format: RFC5424
facility: local7
host: <host>.papertrailapp.com
port: XXXXX
includeMDC: true
mdcId: mdc
它可以工作并使用默认的RFC5424格式输出:
It works and outputs using the default RFC5424 format:
May 14 14:31:36 [server] [app]: My log message
我真正想要的是一条消息,其中包含优先级信息以及完整的堆栈跟踪:
What I really want is a message with priority information as well as full stack traces:
May 14 14:31:36 [server] [app]: ERROR My log message MyException
at package1.MyClass.method1(MyClass.java:20)
at ...
看起来像 LoggerFields 可以做到,但我无法使其正常工作:
Looks like LoggerFields is supposed to do it, but I can't get it to work:
loggerFields:
LoggerFields:
KeyValuePair:
key: priority
value: "%p"
KeyValuePair:
key: exception
value: "%ex"
如何使用所需格式将Log4j2输出到syslog?
How can I get Log4j2 to output to syslog using the desired format?
推荐答案
请尝试设置 RFC5424Layout 的exceptionPattern
属性赋予%ex
.
Please try setting RFC5424Layout's exceptionPattern
attribute to %ex
.
这篇关于Syslog的LoggerFields(输出日志优先级和堆栈跟踪)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!