概述
- springboot如何使用log4j2进行日志管理,springboot应用默认的日志记录组件是logback.
- 为什么使用log4j2,其根本原因在于log4j2使用了LMAX, 一个无锁的线程间通信库代替了, 并发性能大大提升.
- 优点:
- 丢数据这种情况少,可以用来做审计功能。而且自身内部报的exception会被发现,但是logback和log4j不会。
- log4j2使用了disruptor技术,在多线程环境下,性能高于logback等10倍以上。
- (garbage free)之前的版本会产生非常多的临时对象,会造成GC频繁,log4j2则在这方面上做了优化,减少产生临时对象。尽可能少的GC
- 利用插件系统,使得扩展新的appender,filter,layout等变得容易.
- 因为插件系统的简单性,所以在配置的时候,可以不用具体指定所要处理的类型。class
- Java 8 lambda support for lazy logging
- Support for Message objects
- 对filter的功能支持的更强大
- 系统日志(Syslog)协议supports both TCP and UDP
- 利用jdk1.5并发的特性,减少了死锁的发生。
- Socket LogEvent SerializedLayout
- 支持kafka queue
- 优点:
- pom:
-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <!-- 排除springboot的默认logback日志配置 --> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> <!-- 下面两个看自己的项目 --> <exclusion> <artifactId>logback-core</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> <exclusion> <artifactId>logback-classic</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> </exclusions> </dependency> <!-- 导入log4j2依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
-
这样启动的时候,就不会报log冲突了.
-
-
log4j2-spring.xml
-
在src/main/resources目录下新建一个log4j2.xml文件。里面写log4j2的自定义配置
-
如果使用默认的名字就不用再配置文件中指定了.
- 默认名:
- 不然就要在application.yml或者application.properties添加
-
yml logging: config: classpath:logback-spring-dev.xml properties: logging.config=classpath:logback-spring-dev.xml
-
- 默认名:
-
- 为什么使用log4j2,其根本原因在于log4j2使用了LMAX, 一个无锁的线程间通信库代替了, 并发性能大大提升.
最后
以上就是痴情黑裤为你收集整理的SpringBoot使用log4j2进行日志管理的全部内容,希望文章能够帮你解决SpringBoot使用log4j2进行日志管理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复