logback-spring.xml配置
2022-11-03 15:11 通往神之路 阅读(2531) 评论(0) 编辑 收藏 举报<?xml version="1.0" encoding="UTF-8"?> <!-- 级别从高到低 OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL --> <!-- 日志输出规则 根据当前ROOT 级别,日志输出时,级别高于root默认的级别时 会输出 --> <!-- 以下 每个配置的 filter 是过滤掉输出文件里面,会出现高级别文件,依然出现低级别的日志信息,通过filter 过滤只记录本级别的日志 --> <!-- scan 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。 --> <!-- scanPeriod 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 --> <!-- debug 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 --> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <!-- 动态日志级别 --> <jmxConfigurator/> <!-- 服务名称 --> <springProperty scope="context" name="log.contextName" source="spring.application.name"/> <!-- 当前环境 --> <springProperty scope="context" name="log.profile" source="spring.profiles.active"/> <!-- 存放目录 --> <property name="log.root" value="/alllogs/"/> <!--字符集 --> <property name="log.charset" value="UTF-8"/> <!--最大文件个数 --> <property name="log.max.file" value="3"/> <!--单个文件最大 --> <property name="log.max.size" value="100MB"/> <!--全部文件最大 --> <property name="log.total.size.cap" value="300MB"/> <!--日志格式 --> <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger - %msg%n"/> <!-- contextName主要是为了区分在一个web容器下部署多个应用启用jmx时,不会出现混乱 --> <contextName>${log.contextName}</contextName> <!-- STDOUT级别日志 --> <!-- ConsoleAppender 控制台输出日志 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${log.pattern}</pattern> </encoder> </appender> <!-- DEBUG级别日志 appender --> <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.root}/${log.contextName}-${log.profile}/${log.contextName}-debug.log</file> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>debug</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern> ${log.root}/${log.contextName}-${log.profile}/${log.contextName}-debug.%d{yyyy-MM-dd}-%i.log </fileNamePattern> <cleanHistoryOnStart>true</cleanHistoryOnStart> <maxHistory>${log.max.file}</maxHistory> <totalSizeCap>${log.total.size.cap}</totalSizeCap> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>${log.max.size}</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> <charset>${log.charset}</charset> </encoder> </appender> <!-- ERROR级别日志 --> <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.root}/${log.contextName}-${log.profile}/${log.contextName}-error.log</file> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>error</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern> ${log.root}/${log.contextName}-${log.profile}/${log.contextName}-error.%d{yyyy-MM-dd}-%i.log </fileNamePattern> <cleanHistoryOnStart>true</cleanHistoryOnStart> <maxHistory>${log.max.file}</maxHistory> <totalSizeCap>${log.total.size.cap}</totalSizeCap> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>${log.max.size}</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> <charset>${log.charset}</charset> </encoder> </appender> <!-- WARN级别日志 appender --> <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.root}/${log.contextName}-${log.profile}/${log.contextName}-warn.log</file> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>warn</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${log.root}/${log.contextName}-${log.profile}/${log.contextName}-warn.%d{yyyy-MM-dd}-%i.log </fileNamePattern> <cleanHistoryOnStart>true</cleanHistoryOnStart> <maxHistory>${log.max.file}</maxHistory> <totalSizeCap>${log.total.size.cap}</totalSizeCap> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>${log.max.size}</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> <charset>${log.charset}</charset> </encoder> </appender> <!-- INFO级别日志 appender --> <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.root}/${log.contextName}-${log.profile}/${log.contextName}-info.log</file> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>info</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${log.root}/${log.contextName}-${log.profile}/${log.contextName}-info.%d{yyyy-MM-dd}-%i.log </fileNamePattern> <cleanHistoryOnStart>true</cleanHistoryOnStart> <maxHistory>${log.max.file}</maxHistory> <totalSizeCap>${log.total.size.cap}</totalSizeCap> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>${log.max.size}</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> <charset>${log.charset}</charset> </encoder> </appender> <!-- 过滤指定类的日志 --> <logger name="com.pro" level="INFO"/> <logger name="org.springframework.beans.factory.support.DefaultListableBeanFactory" level="INFO"/> <logger name="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" level="INFO"/> <!-- 开发环境 --> <springProfile name="dev"> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="INFO"/> <appender-ref ref="DEBUG"/> <appender-ref ref="WARN"/> <appender-ref ref="ERROR"/> </root> </springProfile> <!-- 测试环境 --> <springProfile name="test"> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="INFO"/> <appender-ref ref="DEBUG"/> <appender-ref ref="WARN"/> <appender-ref ref="ERROR"/> </root> </springProfile> <!-- 预发布环境 --> <springProfile name="testing"> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="INFO"/> <appender-ref ref="DEBUG"/> <appender-ref ref="WARN"/> <appender-ref ref="ERROR"/> </root> </springProfile> <!-- 生产环境 --> <springProfile name="prod"> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="INFO"/> <appender-ref ref="DEBUG"/> <appender-ref ref="WARN"/> <appender-ref ref="ERROR"/> </root> </springProfile> </configuration>