gpt4 book ai didi

java - Syslog 的 LoggerFields(输出日志优先级和堆栈跟踪)

转载 作者:行者123 更新时间:2023-11-30 08:12:07 25 4
gpt4 key购买 nike

Log4j 可以使用 syslog 附加程序 (documentation) 将日志发送到 Papertrail:

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?

最佳答案

请尝试设置RFC5424LayoutexceptionPattern 属性为 %ex

关于java - Syslog 的 LoggerFields(输出日志优先级和堆栈跟踪),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30244901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com