Delen via


Logback gebruiken om logboeken naar aangepaste permanente opslag te schrijven

Notitie

De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.

Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.

Dit artikel is van toepassing op: ✔️ Java ❌ C#

Dit artikel is van toepassing op: ✔️ Basic/Standard ✔️ Enterprise

In dit artikel leest u hoe u logback laadt en logboeken schrijft naar aangepaste permanente opslag in Azure Spring Apps.

Notitie

Wanneer een bestand in het klassepad van de toepassing een van de volgende namen heeft, wordt dit automatisch geladen via de standaardconfiguratie voor Logback:

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

Vereisten

De Logback-configuratie bewerken om logboeken naar een specifiek pad te schrijven

U kunt het pad instellen op de locatie waar logboeken worden geschreven met behulp van het logback-spring.xml voorbeeldbestand.

<?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>

In het voorgaande voorbeeld zijn er twee tijdelijke aanduidingen met de naam {LOGS} in het pad voor het schrijven van de logboeken van de toepassing. Er moet een waarde worden toegewezen aan de omgevingsvariabele LOGS om het logboek naar zowel de console als uw permanente opslag te schrijven.

De Azure CLI gebruiken om een nieuwe app te maken en te implementeren met Logback op permanente opslag

  1. Gebruik de volgende opdracht om een toepassing te maken in Azure Spring Apps waarvoor permanente opslag is ingeschakeld en de omgevingsvariabeleset:

    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
    

    Notitie

    De waarde van de LOGS omgevingsvariabele kan hetzelfde zijn als, of een submap van de mountPath.

    Hier volgt een voorbeeld van het JSON-bestand dat wordt doorgegeven aan de --persistent-storage parameter in de opdracht maken. In dit voorbeeld wordt dezelfde waarde doorgegeven voor de omgevingsvariabele in de BOVENSTAANDe CLI-opdracht en in de mountPath onderstaande eigenschap:

    {
        "customPersistentDisks": [
            {
                "storageName": "<Storage-Resource-Name>",
                "customPersistentDiskProperties": {
                    "type": "AzureFileVolume",
                    "shareName": "<Azure-File-Share-Name>",
                    "mountPath": "/byos/logs",
                    "readOnly": false
                }
            }
        ]
    }
    
  2. Gebruik de volgende opdracht om uw toepassing te implementeren:

    az spring app deploy \
         --resource-group <resource-group-name> \
         --name <app-name> \
         --service <spring-instance-name> \
         --artifact-path <path-to-jar-file>
    
  3. Gebruik de volgende opdracht om het consolelogboek van uw toepassing te controleren:

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

    Ga naar de Azure Storage-accountresource die u hebt gebonden en zoek de Azure-bestandsshare die als permanente opslag is gekoppeld. In dit voorbeeld worden de logboeken naar het spring-boot-logger.log-bestand geschreven in de hoofdmap van uw Azure-bestandsshare. Alle gedraaide logboekbestanden worden opgeslagen in de map /archived in uw Azure-bestandsshare.

  4. Gebruik eventueel de volgende opdracht om het pad of de permanente opslag van een bestaande app bij te werken:

    Het pad of de permanente opslag waar de logboeken worden opgeslagen, kunnen op elk gewenst moment worden gewijzigd. De toepassing wordt opnieuw opgestart wanneer wijzigingen worden aangebracht in omgevingsvariabelen of permanente opslag.

    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>
    

Volgende stappen