Sdílet prostřednictvím


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

Poznámka:

Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.

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