无法让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 ):