Syslog的LoggerFields(输出日志优先级和堆栈跟踪) [英] LoggerFields for Syslog (output log priority and stack trace)

查看:277
本文介绍了Syslog的LoggerFields(输出日志优先级和堆栈跟踪)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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(输出日志优先级和堆栈跟踪)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆