从零开始探索做软件产品(六)logback配置文件
首先我们来看看打印在控制台的。
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!--encoder:将事件转换为字符串
默认配置为PatternLayoutEncoder类
encoder用于替代Layout,encoder扩展了Layout功能
Layout功能:只负责把事件转换为字符串,但是不能指定何时将记录写入到指定目的地
encoder功能:即负责把事件转换为字符串,也可以指定何时将记录写入到指定目的地
-->
<encoder>
<!-- 指定输出格式
%d{} :表示时间
%thread:请求记录所在的线程名
%-5level:用5位显示请求级别
%logger{36}:输出logger名,{36}表示logger名最大占用的字符位数,{0}表示最简短logger名(不包含包名)。
-->
<pattern>==>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level ==> %logger Line:%-3L ==> %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
</appender>
这就完了,基本这样配置就可以了。
<appender name="FILEINFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- $使用变量FILE_PATH的格式,类似Linux中使用的格式:${FILE_PATH} -->
<file>${LOG_HOME}/${SERVER_NAME}/${SERVER_NAME}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名 -->
<fileNamePattern>${LOG_HOME}/${SERVER_NAME}/info/log-info-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<maxHistory>${max.history:-30}</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<append>true</append>
<encoder>
<!-- 指定输出格式 -->
<pattern>==>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level ==> %logger Line:%-3L ==> %msg%n</pattern>
<charset>utf-8</charset>
</encoder>
</appender>
再说一个就是每个服务都会有区分环境配置文件,这时候就依赖这个:
<springProfile name="">
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILEINFO" />
</root>
</springProfile>
最后再说一个,所有服务共用一个logback配置文件,将logback-spring.xml放置一个公共地方,在微服务的application.yml添加如下配置:
logging:
config: Statics/config/logback/logback-spring.xml
path:
logs: Statics/smk-logs
这样配置之后,就加载指定的配置文件,并且输出日志都输出到指定位置了。
over了,按照惯例,完整的可以查看源码