Java项目(非Web)整合lombok+slf4j1.7.x+log4j 2.x日志框架同时输出到文件和控制台


项目依赖

项目依赖的版本号如下:


    1.18.2
    1.7.36
    2.17.2

项目的依赖包如下:


  
    org.projectlombok
    lombok
    ${lombok.version}
    true
  
  
  
    org.slf4j
    slf4j-api
    ${slf4j.version}
  

  
    org.apache.logging.log4j
    log4j-slf4j-impl
    ${log4j.version}
  

  
    org.apache.logging.log4j
    log4j-core
    ${log4j.version}
  

  
    org.apache.logging.log4j
    log4j-api
    ${log4j.version}
  


参考文档
Log4j Runtime Dependencies

下图是 log4j-slf4j-impl 的依赖树:

  • 虽然依赖树中已经包含了 log4j-api 的依赖,但是在尝试不指明版本的情况下,引用了 2.13.x 版本而非 2.17.2 版本,还因此报出 NoSuchMethodError;

  • 但是 log4j-core 依赖的 scope 是 runtime,所以我们在项目中引用它。

初始化log4j 2.x

创建文件 src/main/resources/log4j2.xml,内容如下:

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

    
        
            
        
        
            
                %d %p %c{1.} [%t] %m%n
            
        
        
            
        
    
    
        
            
            
        
    

参考更多 Log4j 2.x Appenders