Dela via


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

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