Log dengan Azure SDK for Java dan Logback
Artikel ini memberikan gambaran umum tentang cara menambahkan pengelogan menggunakan Logback ke aplikasi yang menggunakan Azure SDK for Java. Seperti disebutkan dalam Mengonfigurasi pengelogan di Azure SDK for Java, semua pustaka klien Azure log melalui SLF4J, sehingga Anda dapat menggunakan kerangka kerja pengelogan seperti Logback.
Untuk mengaktifkan logback, Anda harus melakukan dua hal:
- Sertakan pustaka Logback sebagai dependensi,
- Buat file yang disebut logback.xml di direktori proyek /src/main/resources.
Untuk informasi selengkapnya terkait konfigurasi Logback, lihat Konfigurasi logback dalam dokumentasi Logback.
Menambahkan dependensi Maven
Untuk menambahkan dependensi Maven, sertakan XML berikut dalam file pom.xml proyek. Ganti nomor versi 1.2.3 dengan nomor versi terbaru yang dirilis yang ditampilkan di halaman Modul Klasik Logback.
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
Menambahkan logback.xml ke proyek Anda
Logback adalah salah satu kerangka kerja pengelogan yang populer. Untuk mengaktifkan logback, buat file yang disebut logback.xml di direktori ./src/main/resources proyek Anda. File ini berisi konfigurasi pengelogan untuk menyesuaikan kebutuhan pengelogan Anda. Untuk informasi selengkapnya tentang mengonfigurasi logback.xml, lihat Konfigurasi logback dalam dokumentasi Logback.
Pengelogan konsol
Anda dapat membuat konfigurasi Logback untuk masuk ke konsol seperti yang ditunjukkan pada contoh berikut. Contoh ini dikonfigurasi untuk mencatat semua peristiwa pengelogan yang berada pada tingkat INFO atau lebih tinggi, dari mana pun asalnya.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %blue(%logger{100}): %msg%n%throwable
</Pattern>
</layout>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Kesalahan inti Log Azure
Contoh konfigurasi berikut mirip dengan konfigurasi sebelumnya, tetapi menurunkan tingkat di mana pengelogan berasal dari semua com.azure.core
kelas yang dikemas (termasuk subpaket). Dengan cara ini, semua tingkat INFO dan lebih tinggi dicatat, kecuali com.azure.core
, di mana hanya tingkat KESALAHAN dan yang lebih tinggi yang dicatat. Misalnya, Anda dapat menggunakan pendekatan ini jika Anda menemukan kode di com.azure.core
terlalu berisik. Konfigurasi semacam ini juga bisa berjalan dua arah. Misalnya, jika Anda ingin mendapatkan lebih banyak informasi debug dari kelas di com.azure.core
, Anda dapat mengubah pengaturan ini menjadi DEBUG.
Dimungkinkan untuk memiliki kontrol halus atas pengelogan kelas tertentu, atau paket tertentu. Seperti yang ditunjukkan di sini, com.azure.core
mengontrol output semua kelas inti, tetapi Anda dapat sama-sama menggunakan com.azure.security.keyvault
atau setara untuk mengontrol output yang sesuai untuk keadaan yang paling informatif dalam konteks aplikasi yang sedang berjalan.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%message%n</pattern>
</encoder>
</appender>
<logger name="com.azure.core" level="ERROR" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Masuk ke file dengan rotasi log diaktifkan
Contoh sebelumnya mencatat ke konsol, yang biasanya bukan lokasi yang disukai untuk log. Gunakan konfigurasi berikut untuk masuk ke file sebagai gantinya, dengan roll-over per jam, dan pengarsipan dalam format gzip:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOGS" value="./logs" />
<appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS}/spring-boot-logger.log</file>
<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 hourly and gzip logs -->
<fileNamePattern>${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd-HH}.log.gz</fileNamePattern>
</rollingPolicy>
</appender>
<!-- LOG everything at INFO level -->
<root level="INFO">
<appender-ref ref="RollingFile" />
</root>
</configuration>
Aplikasi musim semi
Kerangka kerja Spring bekerja dengan membaca file Spring application.properties untuk berbagai konfigurasi, termasuk konfigurasi pencatatan. Namun, dimungkinkan untuk mengonfigurasi aplikasi Spring untuk membaca konfigurasi Logback dari file apa pun. Untuk melakukannya, konfigurasikan properti logging.config
agar mengarah ke file konfigurasi logback.xml dengan menambahkan baris berikut ke file Spring /src/main/resources/application.properties Anda :
logging.config=classpath:logback.xml
Langkah berikutnya
Artikel ini membahas konfigurasi Logback dan cara membuat Azure SDK for Java menggunakannya untuk pengelogan. Karena Azure SDK for Java berfungsi dengan semua kerangka kerja pengelogan SLF4J, pertimbangkan untuk meninjau manual pengguna SLF4J untuk detail lengkapnya. Jika Anda menggunakan Logback, ada banyak panduan konfigurasi di situs webnya. Untuk informasi selengkapnya, lihat Konfigurasi logback di dokumentasi Logback.
Setelah Anda menguasai pengelogan, pertimbangkan untuk melihat integrasi yang ditawarkan Azure ke dalam kerangka kerja seperti Spring dan MicroProfile.