spring boot 日誌輸出到 log.path_IS_UNDEFINED目錄
阿新 • • 發佈:2018-12-29
springboot專案,logback配置檔案如下
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date|%thread|%X{invokeNo}|%level|%logger{0}|%msg%n</pattern>
</encoder>
</appender>
<appender name="rollinginfoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logPath}/${serverName}/${serverName}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${logPath}/${serverName}/${serverName}.%i.log</fileNamePattern >
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>500MB</maxFileSize>
</triggeringPolicy >
<encoder>
<pattern>%date|%thread|%X{invokeNo}|%level|%logger{0}|%msg%n</pattern>
</encoder>
</appender>
<!-- <logger name="cn.htd" level="${loggingLevel}">
<appender-ref ref="rollinginfoFile" />
</logger>
mybatis
<logger name="org.apache.ibatis" level="${loggingLevel}">
<appender-ref ref="rollinginfoFile" />
</logger> -->
<root level="${loggingLevel}">
<appender-ref ref="rollinginfoFile" />
<appender-ref ref="console" />
</root>
<file>${logPath}/${serverName}/${serverName}.log</file>
指定了當前檔案的輸出路徑
<fileNamePattern>${logPath}/${serverName}/${serverName}.%i.log</fileNamePattern>
指定了歸檔日誌的路徑
然而啟動專案後,發現日誌檔案並沒有輸出到指定路徑上去,而是輸出在本地專案的 XXXIS_UNDEFINED目錄下。
問題是由於我們再application.properties中定義的變數,在logback的xml檔案中無法直接讀取,必須要增加springProperty屬性中轉一下,增加如下兩行
<springProperty scope="context" name="logPath" source="logging.path"/>
<springProperty scope="context" name="serverName" source="server.name"/>
source屬性裡放的值是application.properties中定義的。
這樣修改後日誌就能輸出到對應的目錄下了。