共用方式為


如何使用 Logback 將記錄寫入至自訂永續性儲存體

注意

基本標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告

標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps

本文適用於:✅ Java ❎ C#

本文適用於:✅ 基本/標準 ✅ 企業

本文說明如何在 Azure Spring Apps 中載入 Logback 和將記錄寫入至自定義永續性記憶體。

注意

當應用程式 classpath 中的檔案具有下列其中一個名稱時,Spring Boot 會自動透過 Logback 的預設組態載入它:

  • logback-spring.xml
  • logback.xml
  • logback-spring.groovy
  • logback.groovy

必要條件

編輯Logback組態以將記錄寫入特定路徑

您可以使用 logback-spring.xml 範例檔案,將記錄寫入位置的路徑設定為 。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="Console"
              class="ch.qos.logback.core.ConsoleAppender">
        <!-- please feel free to customize the log layout -->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable
            </Pattern>
        </layout>
    </appender>

    <appender name="RollingFile"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 'LOGS' here is a value to be read from the application's environment variable -->
        <file>${LOGS}/spring-boot-logger.log</file>
        <!-- please feel free to customize the log layout pattern -->
        <encoder
                class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
        </encoder>

        <rollingPolicy
                class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily and when the file reaches 10 MegaBytes -->
            <fileNamePattern>${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <!-- LOG everything at the INFO level -->
    <root level="info">
        <appender-ref ref="RollingFile" />
        <appender-ref ref="Console" />
    </root>

    <!-- LOG "com.baeldung*" at the TRACE level -->
    <logger name="com.baeldung" level="trace" additivity="false">
        <appender-ref ref="RollingFile" />
        <appender-ref ref="Console" />
    </logger>

</configuration>

在上述範例中,路徑中有兩個名為 {LOGS} 的佔位元,可用來寫入應用程式的記錄檔。 值必須指派給環境變數 LOGS ,才能將記錄寫入控制台和永續性記憶體。

使用 Azure CLI 在永續性記憶體上使用 Logback 建立及部署新的應用程式

  1. 使用下列命令在已啟用永續性記憶體的 Azure Spring Apps 中建立應用程式,以及環境變數集:

    az spring app create \
         --resource-group <resource-group-name> \
         --name <app-name> \
         --service <spring-instance-name> \
         --persistent-storage <path-to-json-file> \
         --env LOGS=/byos/logs
    

    注意

    環境變數的值 LOGS 可以和 或 的子目錄 mountPath相同。

    以下是在 create 命令中傳遞至 --persistent-storage 參數的 JSON 檔案範例。 在此範例中,會針對上述 mountPath CLI 命令和下列屬性中的環境變數傳遞相同的值:

    {
        "customPersistentDisks": [
            {
                "storageName": "<Storage-Resource-Name>",
                "customPersistentDiskProperties": {
                    "type": "AzureFileVolume",
                    "shareName": "<Azure-File-Share-Name>",
                    "mountPath": "/byos/logs",
                    "readOnly": false
                }
            }
        ]
    }
    
  2. 使用下列命令來部署您的應用程式:

    az spring app deploy \
         --resource-group <resource-group-name> \
         --name <app-name> \
         --service <spring-instance-name> \
         --artifact-path <path-to-jar-file>
    
  3. 使用下列命令來檢查應用程式的主控台記錄:

    az spring app logs \
         --resource-group <resource-group-name> \
         --name <app-name> \
         --service <spring-instance-name>
    

    移至您系結的 Azure 儲存體 帳戶資源,並尋找附加為持續性記憶體的 Azure 檔案共用。 在此範例中,記錄會寫入 Azure 檔案共用根目錄的 spring-boot-logger.log 檔案。 所有輪替的記錄檔都會儲存在 Azure 檔案共用的 /archived 資料夾中。

  4. 或者,使用下列命令來更新現有應用程式的路徑或持續性記憶體:

    儲存記錄的路徑或永續性記憶體可以隨時變更。 應用程式會在對環境變數或永續性記憶體進行變更時重新啟動。

    az spring app update \
         --resource-group <resource-group-name> \
         --name <app-name> \
         --service <spring-instance-name> \
         --persistent-storage <path-to-new-json-file> \
         --env LOGS=<new-path>
    

下一步