springboot之日志配置-logback

springboot之日志配置-logback

1、为什么使用logback

  • logback是springboot默认集成的,是基于Sl4J的日志框架。
  • logback的内核重写了,使得在某些关键路径上执行时大约会节省大约10倍的速度,同时占用更少的内存。
  • logback提供了更加详细并且不断更新的文档。
  • logback支持自动从I / O故障中恢复正常。如果文件服务器暂时失败,可以不用重新启动应用程序让日志记录再次运行,一旦文件服务器恢复,相关的logback appender将从之前的错误状态自动的快速恢复。

2、logback在springboot项目中的简单使用

logback是springboot项目中的默认集成的日志框架,在默认的配置环境下,该日志框架只会输出INFO级别以上的日志信息到控制台中,如果需要将日志文件输出到具体的文件中,可以在application.properties或者application.yml文件中添加日志文件的输出路径和名称。

//设置日志文件,可以是绝对路径,也可以是相对路径
logging.file=xxx.log
//设置日志文件保存目录,会在该目录下创建spring.log文件,并写入日志内容
logging.path=/logs
//注:二者不能同时使用,若同时使用,则只有logging.file生效

3、自定义logback的配置文件,适应项目中对日志的不同需求

在springboot项目中,项目会自动扫描类路径(即classpath:)下的logback.xml和logback-spring.xml(spring官方推荐的配置文件名称)文件,如果没有找到,则使用spring默认的logback的配置文件。
所以,在自定义logback的配置时,优先在logback.xml和logback-spring.xml文件中书写。如果是其他格式,也一定要以logback-为文件前缀,最后在application.properties中使用logging.config=来指定日志配置文件位置。

logging.config=classpath:logging-xxx.xml

4、书写配置文件前需要清楚的几个知识点

  • 根节点 :文件中的所有内容都将包含在此根节点中,该节点包含下面三个属性
    • scan:默认值为true,当此属性值设置为true时,配置文件如果发生改变,将会被重新加载
    • scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认的时间单位是毫秒。当scan为true时,此属性生效。默认的间隔时间是一分钟。
    • debug:默认值为false,当此属性设置为true时,将打印出logback的内部日志,可以实时查看logback的运行状态。
 
    ...... 

  • 子节点 :用来设置上下文的名称,默认的上下文名称为default,但可以使用 设置成其他的名字,用于区分不同应用程序的记录。
 
    dimples-logback 
    ......

  • 子节点 :用来定义一个变量,其中有两个属性name和value,在logger文件中可以通过${}来取出name对应的property中的value的值。
  • 子节点 :配置日志的具体功能和内容的节点,有name和class属性,通过class来指定日志的处理类型。常用的以下二种
ch.qos.logback.core.ConsoleAppender:日志输出到控制台


    
        
        ${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}
        
        UTF-8
    

ch.qos.logback.core.rolling.RollingFileAppender:滚动记录文件


   
   C:/springboot-log/logs/info/log_info.log
   
   
       
      %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
      
      UTF-8
   
   
   
      
      C:/springboot-log/logs/info/log-info-%d{yyyy-MM-dd-HH}.%i.log
      
         
         100MB
      
      
      15
   
   
   
      info
      ACCEPT
      DENY
   

  • 除以上两种日志处理类型以外,还有其他如
    1、FileAppender:普通的将日志添加到文件中
    2、SocketAppender、
    3、SMTPAppender、
    4、DBAppender、
    5、SyslogAppender、
    6、SiftingAppender 等等

最后贴上个人在平时的项目中总结的logback的配置文件,分为debug、info、warn、error四种类型的日志信息,分别保存到此四个文件夹中,并按大小和日期进行归档。满足大部分的业务场景。

友情链接(个人学习的项目总结)GitHub地址








   dimples-logback
   
   

   
   
   
   
   
   
   
   
   
   
   
   
   
      
         ${CONSOLE_LOG_PATTERN}
         
         UTF-8
      
   

   
   
      
      ${log.path}\debug/log_debug.log
      
      
         %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
         UTF-8 
      
      
      
         
         ${log.path}/debug/log-debug-%d{yyyy-MM-dd-HH}.%i.log
         
            100MB
         
         
         15
      
      
      
         debug
         ACCEPT
         DENY
      
   

   
   
      
      ${log.path}\info/log_info.log
      
      
         %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
         UTF-8
      
      
      
         
         ${log.path}/info/log-info-%d{yyyy-MM-dd-HH}.%i.log
         
            100MB
         
         
         15
      
      
      
         info
         ACCEPT
         DENY
      
   

   
   
      
      ${log.path}\warn/log_warn.log
      
      
         %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
         UTF-8 
      
      
      
         ${log.path}/warn/log-warn-%d{yyyy-MM-dd-HH}.%i.log
         
            100MB
         
         
         30
      
      
      
         warn
         ACCEPT
         DENY
      
   
   
   
   
   
      
      ${log.path}\error/log_error.log
      
      
         %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
         UTF-8 
      
      
      
         ${log.path}/error/log-error-%d{yyyy-MM-dd-HH}.%i.log
         
            100MB
         
         
         30
      
      
      
         ERROR
         ACCEPT
         DENY
      
   
   
   
   
   
   
      
   
   
   
      
      
      
      
      
   

   
   
   
   
   
   
   
   
   
   

你可能感兴趣的:(springboot之日志配置-logback)