Spring Boot配置Slf4j + log4j2


之前在SpringBoot项目中使用的日志是Slf4j + Logback, 现在想换成Slf4j + log4j2, 但是在网上找了配置方式, 发现怎么都不好使, 最后发现是jar包冲突了, 所以这里贴出来针对的配置方式, 具体关于日志的一些讲解说明这里不多说, 可以去百度, 因为 ... 有一大堆 ... 都是抄袭, 就算不好使估计自己都不知道吧, 但是起码讲解说明都是有的, 可以去查看. 最后希望copy党, 能够自己实践一些你的copy好不好使, 不要盲目ctrl+c, ctrl+v就不管了


排除其他日志依赖


        
            org.springframework.boot
            spring-boot-starter-jdbc
            
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
                
                    ch.qos.logback
                    logback-classic
                
            
        
        
            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
                
                    ch.qos.logback
                    logback-classic
                
            
        

一开始我只是排除了spring-boot-starter-web中的日志, 配置好log4j2的xml后, 发现怎么都不好使, 最后使用 mvn dependency:tree 命令后发现, spring-boot-starter-jdbc中也存在冲突的日志jar, 也需要排除掉, 所以我又排除了一遍, 才好使!才好使!才好使! 我记得有方式可以一次性排除掉pom中的jar, 这里在两个地方排除了两遍, 有点多余, 希望大家能够改进

引入log4j2的依赖


    org.springframework.boot
    spring-boot-starter-log4j2

配置log4j2-spring.xml文件

<?xml version="1.0" encoding="UTF-8"?>





    

    
    
        
        
        
        
        
        
    

    

        
            
            
            
            
        

        
        
            
        

        
        
            
            
            
            
                
                
                
                
            
            
            
        

        
        
            
            
            
            
                
                
                
                
            
            
            
        

        
        
            
            
            
            
                
                
                
                
            
            
            
        

    

    
    
    

        
            
            
            
            
            
        
    


以上的xml也是我从别的博客友那里搞来的, 但是都是经过本人实践的, 确保没问题, 请放心参考

测试

@Slf4j
@SpringBootTest
@RunWith(SpringRunner.class)
public class Log4j2Test {

    // 

    @Test
    public void test() {
        //
        final LocalDateTime now = LocalDateTime.now();
        final String format = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss,SSS"));

        log.info("now -> {}", format);
        log.debug("debug ...");
        log.info("info ...");
        log.warn("warn ...");
        log.error("error ...");
    }
}

使用日志的时候, 使用的是lombok的注解, 可以使用@Slf4j, 也可以使用@Log4j2

测试结果

每个文件的内容就不展示了, 可以自己试试, 具体log4j2-spring.xml中的配置, 也说明比较详细, 都不难