SpringBoot学习--08配置log4j2日志详解(上)--配置使用

log4j2和log4j是一个作者,只不过log4j2是重新架构的一款日志组件,他抛弃了之前log4j的不足,以及吸取了优秀的logback的设计重新推出的一款新组件。

  • 在pom.xml中导入依赖,首先去除SpringBoot自带的logging包(logback),再导入log4j2的依赖包,
    
      org.springframework.boot
      spring-boot-starter
      
      
        
          org.springframework.boot
          spring-boot-starter-logging
        
      
    
    
    
      org.springframework.boot
      spring-boot-starter-log4j2
    
  • 若是你只是想看看日志,这时在application配置文件中配置,
#application.properties
logging.level.root=error  #显示日志级别

#application.yml
logging:
  level: 
   root: info #显示日志级别
log4j2 中默认的日志级别为:trace < debug < info < warn < error < fatal
当设置了日志输出级别时,当前级别及以上级别的日志会输出,而当前级别以下级别的日志则不会输出,系统默认输出级别为 error,也就是说默认设置下,只有 error 和 fatal这两级日志会输出.

trace:即追踪,程序每推进一步均可输出一条trace日志,主要用于展现程序运行轨迹
debug:调试
info:输出你感兴趣的信息,一般用于基本的、高层次的诊断信息。在长时间运行的代码段开始运行及结束运行时应该产生消息,以便知道现在系统在干什么。但是这样的信息不宜太过频繁
warn:提示信息
error:错误信息,显示一个错误,或一个通用的错误情况,但还不至于会将系统挂起。这种程度的错误一般会触发邮件的发送,将消息发送到alert list中,运维人员可以在文档中记录这个bug并提交
fatal:会导致程序崩溃的重大错误,用在极端的情形中,即必须马上获得注意的情况

这时候,就可以使用系统默认的输出格式了,如图所示:

默认的输出格式

但是很多的时候我们需要进行日志的记录以及后期维护时日志的查看,所以我们需要自定义日志的配置,配置文件命名的规则如下:

SpringBoot官方文档推荐方式
  • 文件配置优先级

对应于四类配置文件:XML、 JSON、 YAML 和 properties,Log4j 分别有与之相应的 ConfigurationFactory 实现类,不同的实现类可以加载不同扩展名的配置文件中的配置信息。当 Log4j 启动时会按照一定的优先级顺序在classpath(一般是项目的src文件夹下,即在src/main/resources下)查找项目中的配置文件,若找到一个配置文件,就调用与当前文件扩展名对应的ConfigurationFactory实现类加载该配置文件中的配置信息,否则继续查找下一优先级的配置文件,若未找到任何配置文件,就使用默认配置DefaultConfiguration。
不同配置文件的优先级如下图所示:

配置文件优先级

配置文件内容:





   
    
    
    ./target/logs
    
    %d{yyyy-MM-dd 'at' HH:mm:ss.SSS} %-5level [%t] (%F:%M:%L) --- %m%xEx%n
    
    INFO
    
    2MB
  

  
     
        
        
        

    
    
      
      
      
      
      
      
      
      
    
    
    
      
      
    
    
    
     
     
    
      
      
    
    
    
            
    
    
      
      
        
        
      
      
        
      
        
        
        
      
    

    
    
      
      
        
        
        
        
      
      
        
        
      
    

    
    
      
      
        
      
      
        
        
      
    

    
    
      
      
        
      
      
        
        
      
    

    
    
      
      
        
      
      
        
      
    
    
  

   
  
    
    
    
    
    
    
      
      
      
      
      
      
      
     
  


到这里就可以使用log4j2日志了,其显示如下图:

输出日志样式
  • 但是我这种强迫一定要分包分类存放文件,如下:
项目文件分包

这时你会发现启动项目会报错,无法找到log4j2的配置文件,解决办法:

  • 在application配置文件中添加log日志配置文件地址
# yml方式
logging: 
  config: classpath:log4j2/log4j2-spring.xml

# properties方式
logging.config = classpath:log4j2/log4j2-spring.xml

再启动项目就可以成功了.

  • 使用方式
# 导包
import org.apache.logging.log4j.LogManager;

# 初始化log
private static final Logger log = LogManager.getLogger(SysDepartmentController.class);

# 使用
log.trace("======trace");
log.debug("======debug");
log.info("======info");
log.warn("======warn");
log.error("======error");

log4j2的官网:http://logging.apache.org/log4j/2.x/
Log4j2高级配置以及简单的示例:https://my.oschina.net/kkrgwbj/blog/734530
Log4j2配置项目详解:https://blog.csdn.net/womeng2009/article/details/53510913
Log4j2详解:https://www.jianshu.com/p/4ac14b9f51d2
SpringBoot官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/index.html
Log4j2日志输出路径配置:https://www.cnblogs.com/doit8791/p/5372004.html

你可能感兴趣的:(SpringBoot学习--08配置log4j2日志详解(上)--配置使用)