更牛逼的日志框架log4j2出来很久了,你还在用logback吗?
大家好!我是Andy哥,作为有8年Java开发和2年微服务开发架构的开发者。
技术交流探讨可以加我个人微信:bruce521java,我们一起共同成长。
总所周知我们作为一个java开发者肯定会在项目中用来日志框架记录我们的请
求和错误日志方便我们快速定位排查解决问题。可能很多人平时有的比较多的
是logback如果我们是基于springboot框架搭建的项目,但是log4j2是
logback作者新出的全新日志框架支持异步日志。
如何在springboot项目使用log4j2?
log4j2有三种日志记录方式分别是(同步)Appender,(异步),(异步)AsyncAppender,AsyncLogger,官方建议一般程序员查看的日志改成异步方式,一些运营日志改成同步、
首先添加maven pom.xml添加依赖
注意:如果是用的springboot2.x早期版本,新版本依赖有改动参考下面
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<!-- 排除掉logging,不使用logback,改用log4j2 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
最近的springBoot2.x版本依赖如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<!-- 排除掉logging,不使用logback,改用log4j2 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
如果需要使用AsyncLogger 还需要加上disruptoror依赖
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.4.2</version>
</dependency>
需要再src/resources目录下加上log4j2的配置文件命名为log4j2.xml
同步配置参考
异步appender配置参考
异步logger参考
log4j2三种日志器性能差异多大呢?
AsyncLogger》AsyncAppender》Appender(具体看log4j2官网)
出于篇幅和个人水平限制不在详说
再次感谢你们阅读Andy哥的文档,我们一起做更好的自己