log4j打印json格式的log

最近公司打算使用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":{

    }
}

参考链接:

  1. 如何使log4j生成json格式的log

猜你喜欢

转载自blog.csdn.net/hjnjmjkj/article/details/88356288