如何使用 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
必要條件
- 系結至 Azure Spring Apps 實例的現有記憶體資源。 如果您需要系結記憶體資源,請參閱 如何在 Azure Spring Apps 中啟用您自己的永續性記憶體。
- 應用程式中包含的Logback相依性。 如需有關Logback的詳細資訊,請參閱 Logback指南。
- 適用於 Azure CLI 的 Azure Spring Apps 擴充功能
編輯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 建立及部署新的應用程式
使用下列命令在已啟用永續性記憶體的 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 } } ] }
使用下列命令來部署您的應用程式:
az spring app deploy \ --resource-group <resource-group-name> \ --name <app-name> \ --service <spring-instance-name> \ --artifact-path <path-to-jar-file>
使用下列命令來檢查應用程式的主控台記錄:
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 資料夾中。
或者,使用下列命令來更新現有應用程式的路徑或持續性記憶體:
儲存記錄的路徑或永續性記憶體可以隨時變更。 應用程式會在對環境變數或永續性記憶體進行變更時重新啟動。
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>