最近公司打算使用ELK平台,需要将json格式的log打印到指定目录,使用Filebeat来采集日志。
先在maven里面引入下面的pom依赖:
<!-- https://mvnrepository.com/artifact/net.logstash.log4j/jsonevent-layout -->
<dependency>
<groupId>net.logstash.log4j</groupId>
<artifactId>jsonevent-layout</artifactId>
<version>1.7</version>
</dependency>
然后在log4j.properties简单配置即可:
log4j.appender.Console.layout=net.logstash.log4j.JSONEventLayoutV1
注意没有JSONEventLayout这个类
输出的日志如下(真实情况是一行显示)
{
"@timestamp":"2019-03-08T09:54:21.941Z",
"source_host":"DESKTOP-HK",
"file":"FrameworkServlet.java",
"method":"initServletBean",
"level":"INFO",
"line_number":"504",
"thread_name":"localhost-startStop-1",
"@version":1,
"logger_name":"org.springframework.web.servlet.DispatcherServlet",
"message":"FrameworkServlet 'springServlet': initialization completed in 9608 ms",
"class":"org.springframework.web.servlet.FrameworkServlet",
"mdc":{
}
}
参考链接: