我正试图将我的Spring Boot应用程序从Log4j迁移到Log4j 2.我了解Log4j 2从原始Log4j更改了.properties
配置的语法。将LogStj Log4j配置升级到Log4j2
这是我原来的Log4j配置的一个片段:
log4j.appender.logstash=org.apache.log4j.net.SocketAppender
log4j.appender.logstash.layout=org.apache.log4j.PatternLayout
log4j.appender.logstash.layout.ConversionPattern=%d{HH:mm:ss.SSS} %-5p %c {2} %x - %m%n
log4j.appender.logstash.Port=4560
log4j.appender.logstash.RemoteHost=logs.example.com
log4j.appender.logstash.ReconnectionDelay=10000
,这里是什么,我也更新为,对Log4j的2:
appender.logstash.type=SocketAppender # Or 'Socket'
appender.logstash.name=logStash
appender.logstash.layout.type=PatternLayout
appender.logstash.layout.pattern=%d{HH:mm:ss.SSS} %-5p %c {2} %x - %m%n
appender.logstash.host=logs.example.com
appender.logstash.port=4560
appender.logstash.reconnectionDelayMillis=10000
然而,当我这样做,我的控制台和档案appender工作得很好,但LogStash appender抛出一个Broken pipe
错误。
我看着这一个似乎我可能需要包裹SocketAppender
在AsyncAppender
和指向ref
对我logStash SocketAppender
(如this documentation),但后来我得到不同的是,性不存在: appender.async.type =异步 appender.async.ref = logStash#或 '裁判', '附加器-REF' 等
是一个.properties
文件不是去异步的Socket附加目的地的方式吗?我可以通过这个属性文件使用一些帮助从Log4j 1迁移到2。
它似乎是已知的问题。你应该更新你的logstash-log4j2到更新的版本 - 根据这个链接:https://github.com/jurmous/logstash-log4j2/issues/3。 – asch
没错,就是这样。如果你不介意张贴这个答案,我可以接受它。 – Igor
我编辑了答案。 – asch