Springboot使用log4j2日志框架

需求:使用sl4j日志门面,日志实现使用log4j2。

排除springboot中的默认使用的logback

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-boot-starter-logging</artifactId>
                    <groupId>org.springframework.boot</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

如果引入的其他jar包引用了其他的日志框架,也需要排除这些日志引用,之后sl4j-xxx的日志适配包。

引入log4j2的stater

<!--log4j2-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

springboot默认的配置文件路径为

spring-boot-2.2.2.RELEASE.jar!/org/springframework/boot/logging/log4j2/log4j2.xml
路径

关于sl4j

sl4j是日志门面(Java开发模式的门面模式),具体实现有很多,logback,log4j,log4j2等等。如果在系统中这使用一种框架,就需要先排除其他所有的日志框架,这是项目会报错。就需要引用你排除日志和sl4j的适配包,当代码中使用到排除日志的时候,实际上使用适配包的方法,而方法中实际使用的是sl4j的方法。当然最后也要引入你需要的sl4j实现包,如上面的lo4j2(log4j2没有实现sl4j),需要再引入log4j2和sl4j的转换包,而这些都被log4j2 stater做了。

相关文章

java日志框架的关系
sl4j官网
log4j2官网
尚硅谷关于springboot日志框架视屏教程

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容