Så här använder du Logback för att skriva loggar till anpassad beständig lagring
Kommentar
Azure Spring Apps är det nya namnet på Azure Spring Cloud-tjänsten. Även om tjänsten har ett nytt namn ser du det gamla namnet på vissa platser ett tag medan vi arbetar med att uppdatera tillgångar som skärmbilder, videor och diagram.
Den här artikeln gäller för: ✔️ Java ❌ C#
Den här artikeln gäller för: ✔️ Basic/Standard ✔️ Enterprise
Den här artikeln visar hur du läser in Logback- och skrivloggar till anpassad beständig lagring i Azure Spring Apps.
Kommentar
När en fil i programmets klassökväg har något av följande namn läser Spring Boot in den automatiskt över standardkonfigurationen för Logback:
- logback-spring.xml
- logback.xml
- logback-spring.groovy
- logback.groovy
Förutsättningar
- En befintlig lagringsresurs som är bunden till en Azure Spring Apps-instans. Om du behöver binda en lagringsresurs kan du läsa Så här aktiverar du din egen beständiga lagring i Azure Spring Apps.
- Logback-beroendet som ingår i ditt program. Mer information om Logback finns i En guide till tillbakaloggning.
- Azure Spring Apps-tillägget för Azure CLI
Redigera Logback-konfigurationen för att skriva loggar till en specifik sökväg
Du kan ange sökvägen till var loggar ska skrivas med hjälp av logback-spring.xml exempelfilen.
<?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>
I föregående exempel finns det två platshållare med namnet {LOGS}
i sökvägen för att skriva programmets loggar till. Ett värde måste tilldelas miljövariabeln LOGS
för att loggen ska skrivas till både konsolen och din beständiga lagring.
Använd Azure CLI för att skapa och distribuera en ny app med Logback på beständig lagring
Använd följande kommando för att skapa ett program i Azure Spring Apps med beständig lagring aktiverat och miljövariabeluppsättningen:
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
Kommentar
Värdet för
LOGS
miljövariabeln kan vara samma som eller en underkatalog förmountPath
.Här är ett exempel på JSON-filen som skickas till parametern
--persistent-storage
i kommandot create. I det här exemplet skickas samma värde för miljövariabeln i CLI-kommandot ovan och imountPath
egenskapen nedan:{ "customPersistentDisks": [ { "storageName": "<Storage-Resource-Name>", "customPersistentDiskProperties": { "type": "AzureFileVolume", "shareName": "<Azure-File-Share-Name>", "mountPath": "/byos/logs", "readOnly": false } } ] }
Använd följande kommando för att distribuera programmet:
az spring app deploy \ --resource-group <resource-group-name> \ --name <app-name> \ --service <spring-instance-name> \ --artifact-path <path-to-jar-file>
Använd följande kommando för att kontrollera programmets konsollogg:
az spring app logs \ --resource-group <resource-group-name> \ --name <app-name> \ --service <spring-instance-name>
Gå till den Azure Storage-kontoresurs som du har bundit och leta reda på den Azure-filresurs som har kopplats som beständig lagring. I det här exemplet skrivs loggarna till den spring-boot-logger.log filen i roten för din Azure-filresurs. Alla roterade loggfiler lagras i mappen /archived i din Azure-filresurs.
Du kan också använda följande kommando för att uppdatera sökvägen eller den beständiga lagringen av en befintlig app:
Sökvägen eller den beständiga lagringen där loggarna sparas kan ändras när som helst. Programmet startas om när ändringar görs i antingen miljövariabler eller beständig lagring.
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>