1. 程式人生 > >spring boot 日誌輸出到 log.path_IS_UNDEFINED目錄

spring boot 日誌輸出到 log.path_IS_UNDEFINED目錄

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中定義的。

這樣修改後日誌就能輸出到對應的目錄下了。