Cara menggunakan Logback untuk menulis log ke penyimpanan persisten kustom
Catatan
Paket Basic, Standard, dan Enterprise tidak digunakan lagi mulai pertengahan Maret 2025, dengan periode penghentian 3 tahun. Sebaiknya transisi ke Azure Container Apps. Untuk informasi selengkapnya, lihat pengumuman penghentian Azure Spring Apps.
Konsumsi Standar dan paket khusus akan ditolak mulai 30 September 2024, dengan pematian lengkap setelah enam bulan. Sebaiknya transisi ke Azure Container Apps. Untuk informasi selengkapnya, lihat Memigrasikan konsumsi Azure Spring Apps Standard dan paket khusus ke Azure Container Apps.
Artikel ini berlaku untuk: ✔️ Java ❌ C#
Artikel ini berlaku untuk: ✔️ Basic/Standard ✔️ Enterprise
Artikel ini menunjukkan cara memuat Logback dan menulis log ke penyimpanan persisten kustom di Azure Spring Apps.
Catatan
Ketika file di classpath aplikasi memiliki salah satu nama berikut, Spring Boot akan secara otomatis memuatnya melalui konfigurasi default untuk Logback:
- logback-spring.xml
- logback.xml
- logback-spring.groovy
- logback.groovy
Prasyarat
- Sumber daya penyimpanan yang ada terikat ke instans Azure Spring Apps. Jika Anda perlu mengikat sumber daya penyimpanan, lihat Cara mengaktifkan penyimpanan persisten Anda sendiri di Azure Spring Apps.
- Dependensi Logback disertakan dalam aplikasi Anda. Untuk informasi selengkapnya tentang Logback, lihat Panduan Untuk Logback.
- Ekstensi Azure Spring Apps untuk Azure CLI
Mengedit konfigurasi Logback untuk menulis log ke jalur tertentu
Anda dapat mengatur jalur ke tempat log akan ditulis dengan menggunakan file contoh 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>
Dalam contoh sebelumnya, ada dua placeholder yang bernama {LOGS}
di jalur untuk menulis log aplikasi. Nilai harus ditetapkan ke variabel lingkungan LOGS
agar log dapat ditulis ke konsol dan penyimpanan persisten Anda.
Menggunakan Azure CLI untuk membuat dan menyebarkan aplikasi baru dengan Logback pada penyimpanan persisten
Gunakan perintah berikut untuk membuat aplikasi di Azure Spring Apps dengan penyimpanan persisten yang diaktifkan dan variabel lingkungan yang ditetapkan:
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
Catatan
Nilai variabel lingkungan
LOGS
dapat sama seperti, atau subdirektori darimountPath
.Berikut adalah contoh file JSON yang diteruskan ke parameter
--persistent-storage
pada perintah buat. Dalam contoh ini, nilai yang sama diteruskan untuk variabel lingkungan dalam perintah CLI di atas dan di propertimountPath
di bawah:{ "customPersistentDisks": [ { "storageName": "<Storage-Resource-Name>", "customPersistentDiskProperties": { "type": "AzureFileVolume", "shareName": "<Azure-File-Share-Name>", "mountPath": "/byos/logs", "readOnly": false } } ] }
Gunakan perintah berikut untuk menerapkan aplikasi Anda:
az spring app deploy \ --resource-group <resource-group-name> \ --name <app-name> \ --service <spring-instance-name> \ --artifact-path <path-to-jar-file>
Gunakan perintah berikut untuk memeriksa log konsol aplikasi Anda:
az spring app logs \ --resource-group <resource-group-name> \ --name <app-name> \ --service <spring-instance-name>
Buka sumber daya Akun Azure Storage yang Anda ikat dan temukan file share Azure yang dilampirkan sebagai penyimpanan persisten. Dalam contoh ini, log akan ditulis ke file spring-boot-logger.log di akar file share Azure Anda. Semua file log yang diputar akan disimpan dalam folder /archived di file share Azure Anda.
Secara opsional, gunakan perintah berikut untuk memperbarui jalur atau penyimpanan persisten aplikasi yang ada:
Jalur atau penyimpanan persisten tempat log disimpan dapat diubah kapan saja. Aplikasi akan dimulai ulang ketika perubahan dilakukan pada variabel lingkungan atau penyimpanan persisten.
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>