无法让Log4J SocketAppender工作
我的Java项目使用Log4J2。 目前,它已成功将日志写入文件。 现在,我正在尝试通过Socket Appender将日志推送到LogStash。 不幸的是,我对这些努力没有任何成功。 这时,我正在看两件:我的log4j2.xml文件和我的logstash配置文件。 我在这里提供了两个,希望有人可以帮助我找出问题所在。
log4j2.xml
那是我的log4j2配置。 这是我的logstash配置:
logstash.conf
input { log4j { mode => "server" type => "log4j" host => "0.0.0.0" port => "4560" } } output { stdout { codec => "json" } }
我使用logstash-1.4.0/bin/logstash --config /etc/logstash/logstash.conf --debug
从命令行启动logstash。 我没有看到任何错误。 同时,我没有看到任何日志写入控制台窗口。 我知道应该出现日志,因为它们出现在我的滚动server.log文件中,该文件被配置为log4j中的第二个appender。
我究竟做错了什么? 我一直在修补它3天。
Logstash中的log4j输入与Log4j2不兼容。 Log4j2使用新格式来序列化日志数据。
但是有一个插件可以解析Log4j2套接字: https : //github.com/jurmous/logstash-log4j2
在logstash 1.5+中,它可以从以下位置安装: https ://rubygems.org/gems/logstash-input-log4j2
我认为您应该在以下行中用您的IP替换0.0.0.0
:
并在元素
和
添加以下行(就像您为AsyncFile
appender所做的AsyncFile
):