logback-spring.xml 顺序:SpringBoot官方推荐优先使用带有-spring的文件名作为你的日志配置,命名为logback-spring.xml的日志配置文件,将xml放置src/main/resource下面。也可以使用自定义的名称,比如logback-config.xml的日志配置文件,只需要在application.properties文件中使用logging.config=classpath:logback-config.xml指定即可。 Logger:记录器 Appenders:附加器 Layout:布局 <configuration>其中包括零个或多个<appender>可包含零个或一个<layout></layout>,零个或多个<encoder></encoder>元素以及零个或多个<filter></filter></appender>,后跟零个或多个<logger>可以包含零个或多个<appender-ref></appender-ref>,这样引用的每个appender都被添加到指定的logger中</logger>元素,后跟最多一个<root>可以包含零个或多个<appender-ref></appender-ref>,这样引用的每一个appender都被添加到根记录器中</root>元素。</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--指示生产环境和测试环境的日志地址-->
<springProfile name="dev">
<property name="LOG_HOME" value="G:/traffic/logs"></property>
</springProfile>
<springProfile name="prd">
<property name="LOG_HOME" value="/traffic/logs"></property>
</springProfile>
<!--appender是configuration的子节点,是负责写日志的组件-->
<!--ConsoleAppender:把日志输出到控制台-->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志信息 %n 换行符-->
<pattern>
%d{yyyy-MM-dd HH:mm:ss:SSS}[%thread]%-5level %logger{50}- %msg%n
</pattern>
</layout>
</appender>
<!--配置我们的日志以天为单位进行生成-->
<!--RollingFileAppender:滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件-->
<appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--两个与RollingFileAppender交互的重要子组件,即RollingPolicy:负责执行翻转所需要的操作。TriggeringPolicy:将确定是否以及何时发生翻转。RollingFileAppender:必须同时设置这两个组件-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件的名字会根据FileNamePattern的值,每隔一段时间改变一次-->
<FileNamePattern>
${LOG_HOME}/traffic-system.%d{yyyy-MM-dd}.log
</FileNamePattern>
<!--每产生一个日志文件,该日志文件的保存日期为30天(根据yyyy-MM-dd推算)-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志信息-->
<pattern>
%d{yyyy-MM-dd HH:mm:ss:SSS}[%thread]%-5level %logger{50}- %msg%n
</pattern>
</layout>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<root level="info">
<appender-ref ref="stdout"></appender-ref>
<appender-ref ref="rollingFile"></appender-ref>
</root>
</configuration>