<?xml version="1.0" encoding="UTF-8"?>
<!--
scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
-->
<configuration scan="false" scanPeriod="60 seconds" debug="false">
<!-- 定义日志匹配项目名 application_name -->
<springProperty scope="context" name="application_name" source="spring.application.name"/>
<!-- 定义日志的根目录 %d{yyyy-MM,aux}必须加aux 不然无法按日生成日志文件-->
<property name="log_home" value="./logs-${application_name}/%d{yyyy-MM,aux}"/>
<!-- 定义日志输出的格式-->
<property name="log_pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5level [ %-66.66logger ] : %msg%n"/>
<!-- ch.qos.logback.core.ConsoleAppender 表示控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!--
日志输出格式:
%d表示日期时间,
%thread表示线程名,
%-5level:级别从左显示5个字符宽度
%5level:级别从右显示5个字符宽度
%logger{50} 表示logger名字最长50个字符,否则按照句点分割。
%msg:日志消息,
%n是换行符
不适用于生成文件:
%cyan() 绿色
%highlight() 高亮
%boldMagenta() 紫色
%gray() 白亮
-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${log_pattern}</pattern>
</layout>
</appender>
<!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
<appender name="log_file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名 -->
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log_home}/${application_name}%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<maxFileSize>10MB</maxFileSize>
<maxHistory>180</maxHistory>
</rollingPolicy>
<!-- 日志输出格式: -->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${log_pattern}</pattern>
</layout>
</appender>
<!--
logger主要用于存放日志对象,也可以定义日志类型、级别
name:表示匹配的logger类型前缀,也就是包的前半部分
level:要记录的日志级别,包括 TRACE < DEBUG < INFO < WARN < ERROR
additivity:作用在于children-logger是否使用 rootLogger配置的appender进行输出,
false:表示只用当前logger的appender-ref,true:表示当前logger的appender-ref和rootLogger的appender-ref都有效
-->
<!--
root与logger是父子关系,没有特别定义则默认为root,任何一个类只会和一个logger对应,
要么是定义的logger,要么是root,判断的关键在于找到这个logger,然后判断这个logger的appender和level。
-->
<root level="info">
<appender-ref ref="console"/>
<appender-ref ref="log_file"/>
</root>
<springProfile name="dev,test">
<logger name="org.springframework" level="debug" additivity="false"/>
<logger name="org.apache" level="debug" additivity="false"/>
<logger name="org.apache.shiro.session.mgt.AbstractValidatingSessionManager" level="debug" additivity="false"/>
</springProfile>
<springProfile name="prod">
<logger name="org.springframework" level="error" additivity="false"/>
<logger name="org.apache" level="error" additivity="false"/>
<logger name="org.apache.shiro.session.mgt.AbstractValidatingSessionManager" level="error" additivity="false"/>
</springProfile>
</configuration>
日志文件logback-spring.xml
最新推荐文章于 2023-07-14 13:16:38 发布