我试图将我的Spring Boot应用程序从Log4j迁移到Log4j2。我了解Log4j 2.properties
从原始Log4j更改了配置的语法。
这是我的原始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
但是,当我这样做时,我的控制台和文件附加器可以正常工作,但是LogStash附加器会引发Broken pipe
错误。
我已经研究过这一个似乎我可能需要包裹SocketAppender
在一个AsyncAppender
和指向ref
朝我logStash SocketAppender
(在本文档),但后来我得到不同的是,性不存在:appender.async.type =异步的appender .async.ref = logStash#或'refs','appender-ref'等。
是一个.properties
文件不是去异步的Socket附加目的地的方式吗?通过该属性文件,我可以使用一些帮助从Log4j 1迁移到2。
在较旧的logstash-log4j2版本中存在问题。它已在版本3.2中修复。可以从此链接获取较新的版本。
此外,附加程序名称不是SocketAppender而是Socket-根据文档示例,在log4j2.xml中使用名称Socket:
<Appenders>
<Socket name="socket" host="localhost" port="9500">
<SerializedLayout />
</Socket>
</Appenders>
我想您应该相应地更改log4j2.properties:
appender.logstash.type=Socket
appender.logstash.name=logStash
appender.logstash.layout.type=PatternLayout
...
我知道这是习惯问题和“请勿更改工作代码”方法的问题,但是在迁移到log4j2时可能值得转移到xml配置格式,因为文档中的大量示例都在使用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句