Bagikan melalui


Mencatat dengan Azure SDK untuk Java dan Logback

Artikel ini memberikan gambaran umum tentang cara menambahkan pengelogan menggunakan Logback ke aplikasi yang menggunakan Azure SDK untuk Java. Seperti disebutkan dalam Mengonfigurasi pengelogan di Azure SDK untuk Java, semua pustaka klien Azure mencatat melalui SLF4J, sehingga Anda dapat menggunakan kerangka kerja pengelogan seperti Logback.

Untuk mengaktifkan pengelogan Logback, Anda harus melakukan dua hal:

  1. Sertakan perpustakaan Logback sebagai dependensi.
  2. Buat file yang disebut logback.xml di direktori proyek /src/main/resources .

Untuk informasi selengkapnya terkait mengonfigurasi Logback, lihat Konfigurasi logback dalam dokumentasi Logback.

Tambahkan dependensi Maven

Untuk menambahkan dependensi Maven, sertakan XML berikut dalam file pom.xml proyek. 1.2.3 Ganti nomor versi 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 populer. Untuk mengaktifkan pengelogan 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 log balik dalam dokumentasi Logback.

Pengelogan konsol

Anda dapat membuat konfigurasi Logback untuk masuk ke konsol seperti yang ditunjukkan dalam contoh berikut. Contoh ini dikonfigurasi untuk mencatat semua peristiwa log yang level INFO atau lebih tinggi, dari manapun 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>

Mencatat kesalahan inti 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 level INFO dan yang lebih tinggi dicatat, kecuali untuk com.azure.core, di mana hanya level ERROR dan yang lebih tinggi yang dicatat. Misalnya, Anda dapat menggunakan pendekatan ini jika menemukan kode com.azure.core terlalu berisik. Konfigurasi semacam ini juga dapat 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 mendetail 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 spring

Kerangka kerja Spring berfungsi dengan membaca file Spring application.properties untuk berbagai konfigurasi, termasuk konfigurasi pengelogan. Namun, dimungkinkan untuk mengonfigurasi aplikasi Spring untuk membaca konfigurasi Logback dari file apa pun. Untuk melakukannya, konfigurasikan logging.config properti untuk menunjuk ke file konfigurasi logback.xml dengan menambahkan baris berikut ke dalam 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 untuk Java menggunakannya untuk pengelogan. Karena Azure SDK untuk Java berfungsi dengan semua kerangka kerja pengelogan SLF4J, pertimbangkan untuk meninjau manual pengguna SLF4J untuk detail lebih lanjut. Jika Anda menggunakan Logback, ada juga sejumlah besar panduan konfigurasi di situs webnya. Untuk informasi selengkapnya, lihat Konfigurasi logback dalam dokumentasi Logback.

Setelah Anda menguasai pengelogan, pertimbangkan untuk melihat integrasi yang ditawarkan Azure ke dalam kerangka kerja seperti Spring.