将LogStash Log4j配置升级到Log4j2

伊戈尔

我试图将我的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将第3方库的Log4j日志路由到Log4j2

ClasscastException-无法将org.apache.log4j.Logger强制转换为org.owasp.esapi.Logger-从log4j到log4j2

log4j的Logstash模式

如何:将Tomcat 9配置为通过Log4j2进行记录

将jmeter依赖项添加到我的pom.xml中时,获取log4j错误ERROR StatusLogger“未找到log4j2配置文件”

Log4j2 - 无法将日志写入文件

将log4j2用于多个类别

将项目从log4j迁移到slf4j + log4j

将hazelcast 日志重定向到log4j2 日志

将 Tomcat 9 servlet 异常日志重定向到 log4j2

Mybatis log4j如何配置log4j将sql日志打印到文件

如何以编程方式将 log4j 2 配置为异步模式?

将Log4J写入jTextArea

将 slf4j 路由到 log4j,而不是相反

将log4j重新路由到slf4j

将 log4j2 配置文件配置为仅将错误记录到文件中

在Log4j2中,如何将XML模式与log4j2.xml关联?

如何将log4j2配置为在启动时带有时间戳的过渡?

将log4j.properties文件从Log4j版本1迁移到2的合适指南

如何将所有日志从休眠和春季重定向到log4j2?

如何配置Gradle应用程序以将SLF4J与Log4J 2实现一起使用?

如何将Log4j(1或2)配置为在针对Slf4j进行编码时使用自定义日志文件名

如何将Log4j配置为使用Hibernate的Java Web应用程序?

Log4j,将Web应用程序配置为使用相对路径

log4j将标准输出重定向到DailyRollingFileAppender

如何将所有内部Springboot日志直接定向到log4j?

Log4J:如何将OutputStream或Writer重定向到记录器的writer?

log4j问题:将logg重定向到许多文件

使用单个log4j2 xml文件配置log4j2和log4j