Naplók írása egyéni állandó tárterületre a Logback használatával

Feljegyzés

Az Azure Spring Apps az Azure Spring Cloud szolgáltatás új neve. Bár a szolgáltatásnak új neve van, bizonyos helyeken a régi nevet fogja látni egy darabig, miközben az eszközök, például képernyőképek, videók és diagramok frissítésével dolgozunk.

Ez a cikk a következőre vonatkozik: ✔️ Java ❌ C#

Ez a cikk a következőre vonatkozik: ✔️ Basic/Standard ✔️ Enterprise

Ez a cikk bemutatja, hogyan töltheti be a naplókat, és hogyan írhat naplókat egyéni állandó tárolóba az Azure Spring Appsben.

Feljegyzés

Ha egy fájl az alkalmazás osztályútvonalában az alábbi nevek egyikével rendelkezik, a Spring Boot automatikusan betölti azt a Logback alapértelmezett konfigurációján:

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

Előfeltételek

Naplók adott elérési útra való írásához módosítsa a bejelentkezési konfigurációt

Az logback-spring.xml példafájl használatával beállíthatja, hogy a naplók hol lesznek megírva.

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

Az előző példában két helyőrző van elnevezve {LOGS} az alkalmazás naplóinak írási útvonalában. Egy értéket hozzá kell rendelni a környezeti változóhoz LOGS , hogy a napló írása a konzolra és az állandó tárolóra is legyen.

Új alkalmazás létrehozása és üzembe helyezése az Azure CLI használatával az állandó tárterületre történő bejelentkezéssel

  1. Az alábbi paranccsal hozzon létre egy alkalmazást az Azure Spring Appsben az állandó tárterület engedélyezésével és a környezeti változókészlettel:

    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
    

    Feljegyzés

    A környezeti változó értéke LOGS lehet ugyanaz, mint mountPatha .

    Íme egy példa a létrehozási parancsban a --persistent-storage paraméternek átadott JSON-fájlra. Ebben a példában ugyanez az érték lesz átadva a környezeti változónak a fenti CLI-parancsban és az mountPath alábbi tulajdonságban:

    {
        "customPersistentDisks": [
            {
                "storageName": "<Storage-Resource-Name>",
                "customPersistentDiskProperties": {
                    "type": "AzureFileVolume",
                    "shareName": "<Azure-File-Share-Name>",
                    "mountPath": "/byos/logs",
                    "readOnly": false
                }
            }
        ]
    }
    
  2. Az alkalmazás üzembe helyezéséhez használja a következő parancsot:

    az spring app deploy \
         --resource-group <resource-group-name> \
         --name <app-name> \
         --service <spring-instance-name> \
         --artifact-path <path-to-jar-file>
    
  3. Az alkalmazás konzolnaplójának ellenőrzéséhez használja a következő parancsot:

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

    Nyissa meg a kötött Azure Storage-fiók erőforrást, és keresse meg az állandó tárként csatolt Azure-fájlmegosztást. Ebben a példában a naplók az Azure-fájlmegosztás gyökerénél lévő spring-boot-logger.log fájlba lesznek írva. Az összes elforgatott naplófájl az Azure-fájlmegosztás /archivált mappájában lesz tárolva.

  4. Ha szeretné, a következő paranccsal frissítse egy meglévő alkalmazás elérési útját vagy állandó tárterületét:

    A naplók mentési útvonala vagy állandó tárterülete bármikor módosítható. Az alkalmazás újraindul, amikor módosítják a környezeti változókat vagy az állandó tárterületet.

    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>
    

Következő lépések