从零开始探索做软件产品(六)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.xmlpath:logs: Statics/smk-logs
这样配置之后,就加载指定的配置文件,并且输出日志都输出到指定位置了。
over了,按照惯例,完整的可以查看源码
