log4j - Konfigurasi

Bab sebelumnya menjelaskan komponen inti log4j. Bab ini menjelaskan bagaimana Anda dapat mengkonfigurasi komponen inti menggunakan file konfigurasi. Mengonfigurasi log4j melibatkan penetapan Level, mendefinisikan Appender, dan menentukan objek Layout dalam file konfigurasi.

Itu log4j.propertiesfile adalah file konfigurasi log4j yang menyimpan properti dalam pasangan nilai kunci. Secara default, LogManager mencari file bernamalog4j.properties dalam CLASSPATH.

  • Level dari root logger didefinisikan sebagai DEBUG. ItuDEBUG menempelkan appender bernama X padanya.

  • Setel appender bernama X menjadi appender yang valid.

  • Setel tata letak untuk appender X.

log4j.properties Sintaks:

Berikut adalah sintaks file log4j.properties untuk pelengkap X:

# Define the root logger with appender X
log4j.rootLogger = DEBUG, X

# Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender

# Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n

Contoh log4j.properties

Menggunakan sintaks di atas, kami mendefinisikan yang berikut ini di log4j.properties mengajukan:

  • Level dari root logger didefinisikan sebagai DEBUG, The DEBUG appender bernama FILE untuk itu.

  • Penambah FILE didefinisikan sebagai org.apache.log4j.FileAppender. Ini menulis ke file bernamalog.out terletak di log direktori.

  • Pola tata letak yang ditentukan adalah % m% n , yang berarti pesan logging yang dicetak akan diikuti oleh karakter baris baru.

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

Penting untuk diperhatikan bahwa log4j mendukung substitusi variabel gaya UNIX seperti $ {variableName}.

Tingkat Debug

Kami telah menggunakan DEBUG dengan kedua pelengkap. Semua opsi yang memungkinkan adalah:

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • FATAL
  • ALL

Level-level ini dijelaskan nanti dalam tutorial ini.

Penambah

Apache log4j menyediakan objek Appender yang terutama bertanggung jawab untuk mencetak pesan pencatatan ke tujuan yang berbeda seperti konsol, file, soket, log kejadian NT, dll.

Setiap objek Appender memiliki properti berbeda yang terkait dengannya, dan properti ini menunjukkan perilaku objek itu.

Properti Deskripsi
tata letak Appender menggunakan objek Layout dan pola konversi yang terkait dengannya untuk memformat informasi logging.
target Targetnya mungkin konsol, file, atau item lain tergantung pada appendernya.
tingkat Level tersebut diperlukan untuk mengontrol penyaringan pesan log.
ambang Appender dapat memiliki level ambang yang terkait dengannya secara independen dari level logger. Appender mengabaikan pesan logging yang memiliki level lebih rendah dari level ambang batas.
Saring Objek Filter dapat menganalisis informasi logging di luar pencocokan level dan memutuskan apakah permintaan logging harus ditangani oleh Appender tertentu atau diabaikan.

Kita dapat menambahkan objek Appender ke Logger dengan memasukkan pengaturan berikut di file konfigurasi dengan metode berikut:

log4j.logger.[logger-name]=level, appender1,appender..n

Anda dapat menulis konfigurasi yang sama dalam format XML sebagai berikut:

<logger name="com.apress.logging.log4j" additivity="false">
   <appender-ref ref="appender1"/>
   <appender-ref ref="appender2"/>
</logger>

Jika Anda ingin menambahkan objek Appender di dalam program Anda, maka Anda dapat menggunakan metode berikut:

public void addAppender(Appender appender);

Metode addAppender () menambahkan Appender ke objek Logger. Seperti yang ditunjukkan oleh konfigurasi contoh, dimungkinkan untuk menambahkan banyak objek Appender ke logger dalam daftar yang dipisahkan koma, masing-masing mencetak informasi logging ke tujuan terpisah.

Kami hanya menggunakan satu FileAppender appender dalam contoh kami di atas. Semua opsi appender yang memungkinkan adalah:

  • AppenderSkeleton
  • AsyncAppender
  • ConsoleAppender
  • DailyRollingFileAppender
  • ExternallyRolledFileAppender
  • FileAppender
  • JDBCAppender
  • JMSAppender
  • LF5Appender
  • NTEventLogAppender
  • NullAppender
  • RollingFileAppender
  • SMTPAppender
  • SocketAppender
  • SocketHubAppender
  • SyslogAppender
  • TelnetAppender
  • WriterAppender

Kami akan membahas FileAppender di Logging in Files dan JDBC Appender akan dibahas dalam Logging in Database .

Tata Letak

Kami telah menggunakan PatternLayout dengan appender kami. Semua opsi yang memungkinkan adalah:

  • DateLayout
  • HTMLLayout
  • PatternLayout
  • SimpleLayout
  • XMLLayout

Dengan menggunakan HTMLLayout dan XMLLayout, Anda dapat membuat log in HTML dan juga dalam format XML.

Pemformatan Tata Letak

Anda akan belajar bagaimana memformat pesan log di bab: Pemformatan Log .