SpringBoot在logback.xml中讀取application.properties中配置的日志路徑


1、在springboot項目中使用logback記錄日志,在logback.xml中配置日志存儲位置時讀取application.properties中配置的路徑,在 logback.xml中配置引用如下:<property name="log.path" value="${path.log}"/>

發現讀取不到

2、原因:因為logback.xml的加載順序早於springboot的application.yml (或application.properties) 配置文件當然讀不到application.yml(或application.properties)文件中的值了

3、解決方案:需要通過springProperty標簽來引用:<springProperty scope="context" name="log.path" source="path.log"/>

這里的name和上面property標簽一樣不多說,source其實就是上面的value啦,只不過要注意:千萬不要加${}

如果還是讀取不到,請把你的logback.xml配置文件名,改為:logback-spring.xml就可以了。

附:logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<property resource="application.properties"/>
<!--<property name="LOG_HOME" value="${logback.loghome}" />-->
<springProperty scope="context" name="LOG_HOME" source="logback.loghome"/>
<!--定義日志文件的存儲地址 勿在 LogBack 的配置中使用相對路徑-->
<!--<property name="LOG_HOME" value="c:/crmlog" />-->
<!-- 控制台輸出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化輸出,%d:日期;%thread:線程名;%-5level:級別,從左顯示5個字符寬度;%msg:日志消息;%n:換行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
<!-- 過濾 Druid 的 SQLFeatureNotSupportedException -->
<!-- DruidPooledResultSet.getObject() -->
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator>
<expression>java.sql.SQLFeatureNotSupportedException.class.isInstance(throwable)</expression>
</evaluator>
<onMatch>DENY</onMatch>
</filter>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件輸出的文件名-->
<FileNamePattern>${LOG_HOME}/crm.log.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天數-->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化輸出,%d:日期;%thread:線程名;%-5level:級別,從左顯示5個字符寬度;%msg:日志消息;%n:換行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>

<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator>
<expression>java.sql.SQLFeatureNotSupportedException.class.isInstance(throwable)</expression>
</evaluator>
<onMatch>DENY</onMatch>
</filter>
</appender>
<logger name="druid" level="INFO">
<appender-ref ref="STDOUT"/>
</logger>
<logger name="org.springframework.jdbc" level="debug">
<appender-ref ref="STDOUT"/>
</logger>

<!-- 日志輸出級別 -->
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE" />
</root>
</configuration>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM