logback现在基本上已经成为springboot日志框架中使用最多的日志实现,在使用中与各中间件集成的一些注意事项记录如下
一 Spring Boot 中 logback 读取application.properties(application.yml) 中的属性
其中使用的时候发现了一个问题,就是如果使用的lobback配置文件的名称是logback.xml 会先出现先找不到设置的属性,然后项目启动起来才会找到,
比如:
<
springProperty
scope
=
"context"
name
=
"log.path"
source
=
"logback.path"
defaultValue
=
"logs"
/>
说明:其中 source
=
"logback.path" 为
application.properties 中对应的配置节
name
=
"log.path" 为 日志中可以实际使用的配置节点
<!-- 日志存放路径 -->
<springProperty scope="context" name="logback.path" source="logback.path"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
<appender name="jwsbapi" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${logback.path}/jwsbapi-info.log</file> <!-- 循环政策:基于时间创建日志文件 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 日志文件名格式 --> <fileNamePattern>${logback.path}/jwsbapi.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- 日志最大的历史 60天 --> <maxHistory>60</maxHistory> </rollingPolicy> <encoder> <pattern>${log.pattern}</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- 过滤的级别 --> <level>INFO</level> <!-- 匹配时的操作:接收(记录) --> <onMatch>ACCEPT</onMatch> <!-- 不匹配时的操作:拒绝(不记录) --> <onMismatch>DENY</onMismatch> </filter> </appender>
日志生成路径会取自source
=
"logback.path" 对应的application.yml中配置的节点路径信息
记录日志文件存放地址属性,会在项目启动的时候想出现一个找不到log.path_is_UNDIFIND 的目录,项目启动起来后才会读取到属性,在配置路径上生成日志文件。
SpringBoot 配置文件的加载顺序
logback.xml—>application.properties(application.yml)—>logback-spring.xml
二 问题原因分析
在正常情况下,将logback.xml修改为logback-spring.xml即可解决问题的。
标签:xml,log,LOG,application,path,日志,logback,UNDEFINED From: https://www.cnblogs.com/freewsf/p/18302826