我想添加一些额外的信息/属性,如“应用程序”的名字我log4j2活动(由于某种原因,这个属性是不是在log4j2菱了..) 将日志通过LAN发送到Logstash实例。添加属性的Log4j 2个活动
我已经计算出包括一个解决方案:
- 自定义追加程序布局(https://github.com/majikthys/log4j2-logstash-jsonevent-layout):布局提取从Log4jLogEvent所有属性,并且可以通过log4j2配置来提供额外的属性,并产生一个JSON串。
- Logstash配置:
input { tcp { codec => json_lines { charset => "UTF-8" } port => 4560 type => "log4j2-json" mode => "server" } } ...
上述工作的解决方案,但需要布局要建和加入/保持为在每一个应用程序中的广口瓶中。
所以问题是 - 有没有更好的解决方案,我错过了? 理想将是一个解决方案,不需要添加任何新的罐子/类和第三方软件的使用。像RewriteAppender但不使用“MapMessage”。
正如我所说 - 我需要添加一些信息,如应用程序名称来知道哪个应用程序已发送日志。所以,用TcpSocketServer,Grok或其他方法修改另一端的日志已经太晚了。 – mihahh 2014-09-08 11:01:09
我创建了一个自定义布局插件,类似于OP提到的 - https://github.com/savantly-net/log4j2 -Extended-jsonlayout – Jeremy 2017-08-22 09:03:16