Dela via


Så här använder du Logback för att skriva loggar till anpassad beständig lagring

Kommentar

Basic-, Standard- och Enterprise-planerna kommer att vara inaktuella från och med mitten av mars 2025, med en 3-årig pensionsperiod. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i meddelandet om azure Spring Apps-pensionering.

Standardförbrukningen och den dedikerade planen kommer att vara inaktuell från och med den 30 september 2024, med en fullständig avstängning efter sex månader. Vi rekommenderar att du övergår till Azure Container Apps. Mer information finns i Migrera Azure Spring Apps Standard-förbrukning och dedikerad plan till Azure Container Apps.

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

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

  1. 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ör mountPath.

    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 i mountPath egenskapen nedan:

    {
        "customPersistentDisks": [
            {
                "storageName": "<Storage-Resource-Name>",
                "customPersistentDiskProperties": {
                    "type": "AzureFileVolume",
                    "shareName": "<Azure-File-Share-Name>",
                    "mountPath": "/byos/logs",
                    "readOnly": false
                }
            }
        ]
    }
    
  2. 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>
    
  3. 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.

  4. 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>
    

Nästa steg