2015-05-14 65 views
1

的Log4j可以將日誌發送到Papertrail使用系統日誌的appender(documentation):LoggerFields的系統日誌(輸出日誌優先級和堆棧跟蹤)

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:

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格式輸出:

May 14 14:31:36 [server] [app]: My log message 

我真正想要的是具有優先級信息以及完整堆棧跟蹤的消息:

May 14 14:31:36 [server] [app]: ERROR My log message MyException 
     at package1.MyClass.method1(MyClass.java:20) 
     at ... 

貌似LoggerFields是應該做的,但我不能得到它的工作:

loggerFields: 
    LoggerFields: 
    KeyValuePair: 
     key: priority 
     value: "%p" 
    KeyValuePair: 
     key: exception 
     value: "%ex" 

我怎樣才能得到Log4j2輸出使用所需的格式爲syslog?

回答

1

請嘗試設置RFC5424LayoutexceptionPattern屬性爲%ex

+0

它的工作'exceptionPattern:「%ex」',只需要找到一種方法來放置優先級信息。 –

+0

我試圖 'log4j.appender.syslog.layout.ExceptionPattern =%ex' 和 'log4j.appender.syslog.ExceptionPattern =%ex' 我得到錯誤:WARN在org.apache沒有這樣的屬性[exceptionPattern。 log4j.PatternLayout – Roman

+0

我沒有看到使用LoggerFields爲log4j.properties文件添加日誌優先級的任何方式。 有沒有添加日誌優先級的解決方案? –