vlambda博客
学习文章列表

从零开始探索做软件产品(六)logback配置文件

服务注册中心已经基本搭建完成了,接下来还要做什么内?接下来我们来研究研究logback日志配置,日志应该是所有问题定位的最重要的东东了。选用其他日志框架也没问题,可自行改造哈!
记日志就分为两种情况,一种是开发人员自己开发时候用的,打印在开发工具的控制台上;另一种就是部署环境定位线上问题时候使用的,一般都是linux系统,肯定打印在日志文件里面。还有啥?应该没了吧。
logback日志配置文件是xml格式的,有没有其他格式,我还真不知道了,可以自行扩展哈。xml文件都是标签性质的编程语言,最好学习,就是记住么。

首先我们来看看打印在控制台的。

<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>

这就完了,基本这样配置就可以了。

哦,对了忘了说了,springboot项目会自动加载resources下的logback-spring.xml文件,在resources目录下创建这个文件就行了。剩下的就没你什么事了,你懂的。
配置日志记录到文件,并且添加轮询规则,这个规则说的第一个就是每个日志文件多大,超过这个大小限制,就会产生新的文件;第二个就是保留多少个,当日志文件超过这个个数,就会删除最旧的那个;第三个就是保留日期,过期了的日志就会被删除。看配置,走起:
<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了,按照惯例,完整的可以查看源码