Günlükleri özel kalıcı depolama alanına yazmak için Logback'i kullanma
Not
Azure Spring Apps, Azure Spring Cloud hizmetinin yeni adıdır. Hizmetin yeni bir adı olsa da, ekran görüntüleri, videolar ve diyagramlar gibi varlıkları güncelleştirmek için çalışırken bazı yerlerde eski adı bir süre görürsünüz.
Bu makale şunlar için geçerlidir: ✔️ Java ❌ C#
Bu makale şunlar için geçerlidir: ✔️ Temel/Standart ✔️ Kurumsal
Bu makalede, Azure Spring Apps'te Logback'i yükleme ve günlükleri özel kalıcı depolama alanına yazma adımları gösterilmektedir.
Not
Uygulamanın sınıf yolundaki bir dosya aşağıdaki adlardan birine sahip olduğunda, Spring Boot bunu otomatik olarak Logback için varsayılan yapılandırmanın üzerine yükler:
- logback-spring.xml
- logback.xml
- logback-spring.groovy
- logback.groovy
Önkoşullar
- Azure Spring Apps örneğine bağlı mevcut bir depolama kaynağı. Depolama kaynağı bağlamanız gerekiyorsa bkz . Azure Spring Apps'te kendi kalıcı depolama alanınızı etkinleştirme.
- Uygulamanıza dahil edilen Logback bağımlılığı. Logback hakkında daha fazla bilgi için bkz . Logback Kılavuzu.
- Azure CLI için Azure Spring Apps uzantısı
Günlükleri belirli bir yola yazmak için Logback yapılandırmasını düzenleyin
logback-spring.xml örnek dosyasını kullanarak günlüklerin yazılacağı yolu ayarlayabilirsiniz.
<?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>
Yukarıdaki örnekte, uygulamanın günlüklerini yazmaya yönelik yolda adlı {LOGS}
iki yer tutucu vardır. Günlüğün hem konsola hem de kalıcı depolamanıza yazılması için ortam değişkenine LOGS
bir değer atanması gerekir.
Kalıcı depolamada Logback ile yeni bir uygulama oluşturmak ve dağıtmak için Azure CLI'yi kullanma
Azure Spring Apps'te kalıcı depolama etkinleştirilmiş ve ortam değişken kümesine sahip bir uygulama oluşturmak için aşağıdaki komutu kullanın:
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
Not
Ortam değişkeninin
LOGS
değeri ile aynı veya alt dizinimountPath
olabilir.Aşağıda create komutundaki parametresine
--persistent-storage
geçirilen JSON dosyasının bir örneği verilmiştir. Bu örnekte, yukarıdaki CLI komutunda ve aşağıdaki özelliktemountPath
ortam değişkeni için aynı değer geçirilir:{ "customPersistentDisks": [ { "storageName": "<Storage-Resource-Name>", "customPersistentDiskProperties": { "type": "AzureFileVolume", "shareName": "<Azure-File-Share-Name>", "mountPath": "/byos/logs", "readOnly": false } } ] }
Uygulamanızı dağıtmak için aşağıdaki komutu kullanın:
az spring app deploy \ --resource-group <resource-group-name> \ --name <app-name> \ --service <spring-instance-name> \ --artifact-path <path-to-jar-file>
Uygulamanızın konsol günlüğünü denetlemek için aşağıdaki komutu kullanın:
az spring app logs \ --resource-group <resource-group-name> \ --name <app-name> \ --service <spring-instance-name>
Bağladığınız Azure Depolama Hesabı kaynağına gidin ve kalıcı depolama olarak eklenen Azure dosya paylaşımını bulun. Bu örnekte günlükler Azure dosya paylaşımınızın kökündeki spring-boot-logger.log dosyasına yazılır. Döndürülen günlük dosyalarının tümü Azure dosya paylaşımınızdaki /archived klasöründe depolanır.
İsteğe bağlı olarak, mevcut bir uygulamanın yolunu veya kalıcı depolama alanını güncelleştirmek için aşağıdaki komutu kullanın:
Günlüklerin kaydedildiği yol veya kalıcı depolama alanı istediğiniz zaman değiştirilebilir. Ortam değişkenlerinde veya kalıcı depolamada değişiklikler yapıldığında uygulama yeniden başlatılır.
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>
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin