springboot日志logback配置

Posted 姿势帝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot日志logback配置相关的知识,希望对你有一定的参考价值。

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <!--
  3     scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
  4     scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒;当scan为true时,此属性生效。默认的时间间隔为1分钟。
  5     debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
  6 -->
  7 <configuration scan="false" scanPeriod="60 seconds" debug="false">
  8     <!-- 定义日志的根目录 -->
  9     <property name="LOG_HOME" value="logs"/>
 10     <!-- 定义日志文件名称 -->
 11     <property name="appName" value="log"></property>
 12     <!-- ch.qos.logback.core.ConsoleAppender 表示控制台输出 -->
 13     <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
 14         <!--
 15         日志输出格式:
 16             %d表示日期时间,
 17             %thread表示线程名,
 18             %-5level:级别从左显示5个字符宽度
 19             %logger{50} 表示logger名字最长50个字符,否则按照句点分割。
 20             %msg:日志消息,
 21             %n是换行符
 22         -->
 23         <layout class="ch.qos.logback.classic.PatternLayout">
 24             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ==> [%thread] ==> %-5level %logger{50} - %msg%n</pattern>
 25         </layout>
 26     </appender>
 27 
 28     <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
 29     <appender name="appLogAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
 30         <!-- 指定日志文件的名称 -->
 31         <file>${LOG_HOME}/${appName}.log</file>
 32         <!--
 33         当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名
 34         TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动。
 35         -->
 36         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 37             <!--
 38             滚动时产生的文件的存放位置及文件名称 %d{yyyy-MM-dd}:按天进行日志滚动
 39             %i:当文件大小超过maxFileSize时,按照i进行文件滚动
 40             -->
 41             <fileNamePattern>${LOG_HOME}/${appName}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
 42             <!--
 43             可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每天滚动,
 44             且maxHistory是365,则只保存最近365天的文件,删除之前的旧文件。注意,删除旧文件是,
 45             那些为了归档而创建的目录也会被删除。
 46             -->
 47             <MaxHistory>365</MaxHistory>
 48             <!--
 49             当日志文件超过maxFileSize指定的大小时,根据上面提到的%i进行日志文件滚动
 50             注意此处配置SizeBasedTriggeringPolicy是无法实现按文件大小进行滚动的,必须配置timeBasedFileNamingAndTriggeringPolicy
 51             -->
 52             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
 53                 <maxFileSize>1KB</maxFileSize>
 54             </timeBasedFileNamingAndTriggeringPolicy>
 55         </rollingPolicy>
 56         <!-- 日志输出格式: -->
 57         <layout class="ch.qos.logback.classic.PatternLayout">
 58             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern>
 59         </layout>
 60         <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印ERROR日志 -->
 61             <level>ERROR</level>
 62             <onMatch>ACCEPT</onMatch>
 63             <onMismatch>DENY</onMismatch>
 64         </filter>
 65     </appender>
 66 
 67     <!--输出到error-->
 68     <appender name="appLogAppenderError" class="ch.qos.logback.core.rolling.RollingFileAppender">
 69         <!-- 指定日志文件的名称 -->
 70         <file>${LOG_HOME}/${appName}-error.log</file>
 71         <!--
 72         当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名
 73         TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动。
 74         -->
 75         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
 76             <!--
 77             滚动时产生的文件的存放位置及文件名称 %d{yyyy-MM-dd}:按天进行日志滚动
 78             %i:当文件大小超过maxFileSize时,按照i进行文件滚动
 79             -->
 80             <fileNamePattern>${LOG_HOME}/${appName}-error-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
 81             <!--
 82             可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每天滚动,
 83             且maxHistory是365,则只保存最近365天的文件,删除之前的旧文件。注意,删除旧文件是,
 84             那些为了归档而创建的目录也会被删除。
 85             -->
 86             <MaxHistory>365</MaxHistory>
 87             <!--
 88             当日志文件超过maxFileSize指定的大小时,根据上面提到的%i进行日志文件滚动
 89             注意此处配置SizeBasedTriggeringPolicy是无法实现按文件大小进行滚动的,必须配置timeBasedFileNamingAndTriggeringPolicy
 90             -->
 91             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
 92                 <maxFileSize>1KB</maxFileSize>
 93             </timeBasedFileNamingAndTriggeringPolicy>
 94         </rollingPolicy>
 95         <!-- 日志输出格式: -->
 96         <layout class="ch.qos.logback.classic.PatternLayout">
 97             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [ %thread ] - [ %-5level ] [ %logger{50} : %line ] - %msg%n</pattern>
 98         </layout>
 99         <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印ERROR日志 -->
100             <level>ERROR</level>
101             <onMatch>ACCEPT</onMatch>
102             <onMismatch>DENY</onMismatch>
103         </filter>
104     </appender>
105 
106 
107     <!--
108         logger主要用于存放日志对象,也可以定义日志类型、级别
109         name:表示匹配的logger类型前缀,也就是包的前半部分
110         level:要记录的日志级别,包括 TRACE < DEBUG < INFO < WARN < ERROR
111         additivity:作用在于children-logger是否使用 rootLogger配置的appender进行输出,
112         false:表示只用当前logger的appender-ref,true:
113         表示当前logger的appender-ref和rootLogger的appender-ref都有效
114     -->
115     <!-- app logger -->
116     <logger name="com.qianxingniwo" level="debug"/>
117     <!-- Spring framework logger -->
118     <logger name="org.springframework" level="debug" additivity="false"></logger>
119 
120     <!--
121     root与logger是父子关系,没有特别定义则默认为root,任何一个类只会和一个logger对应,
122     要么是定义的logger,要么是root,判断的关键在于找到这个logger,然后判断这个logger的appender和level。
123     -->
124     <root level="info">
125         <appender-ref ref="stdout"/>
126         <appender-ref ref="appLogAppender"/>
127         <appender-ref ref="appLogAppenderError"/>
128     </root>
129 </configuration>

 

以上是关于springboot日志logback配置的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot配置Logback日志

SpringBoot整合+logback日志配置

springboot配置logback日志

springBoot:日志配置-logback

(转)Spring Boot干货系列:默认日志logback配置解析

spring-boot中logback日志配置