Použití zpětného protokolování k zápisu protokolů do vlastního trvalého úložiště

Poznámka:

Azure Spring Apps je nový název služby Azure Spring Cloud. Přestože má služba nový název, na některých místech uvidíte starý název, protože pracujeme na aktualizaci prostředků, jako jsou snímky obrazovky, videa a diagramy.

Tento článek se vztahuje na: ✔️ Java ❌ C#

Tento článek se vztahuje na: ✔️ Basic/Standard ✔️ Enterprise

V tomto článku se dozvíte, jak načíst protokoly zpětného protokolování a zápisu do vlastního trvalého úložiště v Azure Spring Apps.

Poznámka:

Pokud má soubor v cestě třídy aplikace jeden z následujících názvů, Spring Boot ho automaticky načte přes výchozí konfiguraci pro zpětný protokol:

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

Požadavky

Úprava konfigurace zpětného zápisu protokolů do konkrétní cesty

Cestu k umístění, kam se protokoly zapíšou, můžete nastavit pomocí ukázkového souboru 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>

V předchozím příkladu jsou v cestě dva zástupné symboly, {LOGS} do které se zapisují protokoly aplikace. Hodnota musí být přiřazena proměnné prostředí LOGS , aby protokol zapisovali do konzoly i do trvalého úložiště.

Použití Azure CLI k vytvoření a nasazení nové aplikace se zpětným přihlašováním v trvalém úložišti

  1. Pomocí následujícího příkazu vytvořte aplikaci v Azure Spring Apps s povoleným trvalým úložištěm a sadou proměnných prostředí:

    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
    

    Poznámka:

    Hodnota LOGS proměnné prostředí může být stejná jako podadresář mountPath.

    Tady je příklad souboru JSON předaného parametru --persistent-storage v příkazu create. V tomto příkladu se stejná hodnota předá proměnné prostředí v příkazu rozhraní příkazového řádku výše a ve mountPath vlastnosti níže:

    {
        "customPersistentDisks": [
            {
                "storageName": "<Storage-Resource-Name>",
                "customPersistentDiskProperties": {
                    "type": "AzureFileVolume",
                    "shareName": "<Azure-File-Share-Name>",
                    "mountPath": "/byos/logs",
                    "readOnly": false
                }
            }
        ]
    }
    
  2. K nasazení aplikace použijte následující příkaz:

    az spring app deploy \
         --resource-group <resource-group-name> \
         --name <app-name> \
         --service <spring-instance-name> \
         --artifact-path <path-to-jar-file>
    
  3. Pomocí následujícího příkazu zkontrolujte protokol konzoly vaší aplikace:

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

    Přejděte k prostředku účtu úložiště Azure, který jste vázali, a vyhledejte sdílenou složku Azure, která byla připojena jako trvalé úložiště. V tomto příkladu se protokoly zapíšou do souboru spring-boot-logger.log v kořenovém adresáři sdílené složky Azure. Všechny otočené soubory protokolu budou uloženy ve složce /archivované ve sdílené složce Azure.

  4. Volitelně můžete pomocí následujícího příkazu aktualizovat cestu nebo trvalé úložiště existující aplikace:

    Cestu nebo trvalé úložiště, do kterého se protokoly ukládají, je možné kdykoli změnit. Aplikace se restartuje, když dojde ke změnám proměnných prostředí nebo trvalém úložišti.

    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>
    

Další kroky