java之springboot中的日志

logback配置详解:https://www.jianshu.com/p/1ded57f6c4e3

  •  
  • logback-classic:log4j的一个改良版本,同时实现了slf4j的接口;
  1. 
    
         ch.qos.logback
         logback-classic
      
    
    

     

springBoot日志处理:日志框架UCL、JUL、slf4j、logback、log4j;springboot默认支持的有slf4j、logback;

springboot默认帮我们配置好了,直接使用就可以了;

springboot默认的日志级别是info,只打印info级别只之后的信息,也可以在配置文件中配置日志级别logging.level.主配置类多所在的包=日志级别;

吧日志保存在文件中:要配置logging.file=保存日志文件的位置,(相对于文件的根路径),也可以设置绝对路径.文件夹用logging.path=文件夹位置,并且默认的文件名叫spring.log;

修改日志的格式:1.日志显示在控制台,logging.pattern.console=%d{yyyy-MM-dd } [%thread] %-5level  %logger{50} -%msg %n;2.日志显示在文件中,logging.pattern.file=%d{yyyy-MM-dd } [%thread] %-5level  %logger{50} -%msg %n。

如果你即想完全掌控日志配置,但又不想用logback.xml作为Logback配置的名字,application.yml可以通过logging.config属性指定自定义的名字:

logging.config=classpath:logging-config.xml

Spring Boot 的日志支持依赖是 spring-boot-starter-logging,默认使用slf4j+logback的方式来记录日志.

 
        org.springframework.boot
        spring-boot-starter-logging
 

在控制台中可看到 spring boot 默认打印出的启动日志,不过默认的打印级别为 INFO.Logback 支持 TRACE, DEBUG, INFO, WARN, ERROR 日志级别,优先级关系为 TRACE < DEBUG < INFO < WARN < ERROR , 我们可以在 application.properties 配置文件中更改打印日志级别.

***通用修改:
logging.level.root=DEBUG
还可以指定包的日志级别:
logging.level.org.springframework=INFO


***代码中使用:
Logger logger= LoggerFactory.getLogger(DemoApplication.getClass());
logger.debug("debug日志");

		logger.info("info日志");

		logger.warn("warn日志");

		logger.error("error日志");


***使用属性 logging.pattern.console 和 logging.pattern.file 可以分别自定义控制台日志和文件日志的格式

#控制台显示日志的格式
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{5}- %msg%n

#文件显示日志的格式
logging.pattern.file=%d{yyyy-MM-dd HH:mm} [%thread] %-5level %logger- %msg%n

%d: 日期实践
%thread: 线程名
%-5level:级别从左显示5个字符宽度
%logger{5}:表示logger名字最长5个字符,否则按照句点分割。
%msg:日志消息
%n:换行


***日志保存(优先输出 logging.file)
logging.path 可以指定日志保存目录,但不能指定输出的文件名,且默认名为spring.log
logging.path=/Users/HaokeMaster/Desktop/sts 
 logging.file 指定具体的路径:
logging.file=/Users/HaokeMaster/Desktop/sts/my.log

***
# 当文件超过 10Mb 时,归档压缩
logging.file.max-size=10Mb
# 日志文件最多保存3天
logging.file.max-history=3
# 用于滚动的日志文件名的模式
logging.pattern.rolling-file-name=${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz


***

日志服务在ApplicationContext 创建之前就被初始化了,并不是采用Spring的配置文件进行控制。

那我们来如何进行自定义配置日志呢。springboot为我们提供了一个规则,按照规则组织配置文件名,就可以被正确加载:

Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
Log4j2:log4j2-spring.xml, log4j2.xml
JDK (Java Util Logging):logging.properties

 

参考:https://blog.csdn.net/weixin_38361347/article/details/86707149



   
   
    
    
        %d{yyyy-MM-dd HH:mm:ss} [%level] - %m%n
    
    
    
      
      WARN
      
      ACCEPT
      
      DENY
    
  

   
  
     
    /logs/error.log
    
    
        %d{yyyy-MM-dd HH:mm:ss} [%class:%line] - %m%n
    
    
    
      
      ERROR
      
      ACCEPT
      
      DENY
    
    
    
      
      error.%d{yyyy-MM-dd}.log
      
      30
    
  

  
  
    
    
  

一:根节点包含的属性:

scan:

当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。

scanPeriod:

设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。

例如:

 
       
 

 

onMatch和onMismatch都有三个属性值,分别为Accept、DENY和NEUTRAL

分别介绍这两个配置项的三个属性值:

onMatch="ACCEPT" 表示匹配该级别及以上
onMatch="DENY" 表示不匹配该级别及以上
onMatch="NEUTRAL" 表示该级别及以上的,由下一个filter处理,如果当前是最后一个,则表示匹配该级别及以上
onMismatch="ACCEPT" 表示匹配该级别以下
onMismatch="NEUTRAL" 表示该级别及以下的,由下一个filter处理,如果当前是最后一个,则不匹配该级别以下的
onMismatch="DENY" 表示不匹配该级别以下的
 

 logback配置非常详细的解释:https://blog.csdn.net/qq_36850813/article/details/83092051



    logback

  
   -->
    
    
    



    
        
        
            ${CONSOLE_LOG_PATTERN}
        
    
    
    
    
    
        

        
            INFO
            ACCEPT
            DENY
        

        
       
            [%d{yyyy-MM-dd' 'HH:mm:ss.sss}] [%C] [%t] [%L] [%-5p] %m%n
            
          UTF-8
        
 
        
        
            
            ${log.path}/info/%d.log
            
            30
           
           100MB
        
    
    
    
        
            ERROR
            ACCEPT
            DENY
        
        
            [%d{yyyy-MM-dd' 'HH:mm:ss.sss}] [%C] [%t] [%L] [%-5p] %m%n
        
        
        
            
            ${log.path}/error/%d.log
            30
             
           100MB
        
    

    
    
   
    
    

    
    
    
    
    
        
    

    
    
    

    
    
    
        
        
        
    
    

 

***依赖重复的报错:https://blog.csdn.net/a704397849/article/details/98487404

排除spring-boot-starter-logging依赖,


			org.springframework.boot
			spring-boot-starter
			
		
	
        这一个可以不排除
            logback-core
            ch.qos.logback
        
        这个必须排除
            org.springframework.boot
            spring-boot-starter-logging
        
     
		
  
        
            org.springframework.boot
            spring-boot-starter-logging
            
                
                    *
                    *
                
            
        

 

如何快速正确的解决类似重复依赖的问题。

  • 1 pom.xml中选中exclusion,右键 -> Maven -> Show Dependencies
  • 2.crtl + f 打开搜索,然后输入搜索内容 logback-classic或者其他需要搜索的内容.

你可能感兴趣的:(java)