Daftar pelengkap
Logger memungkinkan Anda untuk menyimpan data ke beberapa file sekaligus. Aliran data keluaran seperti itu disebut appenders (dari append). Ada beberapa tambahan standar, jadi kami hanya akan membahas yang paling populer:
Appenders | Keterangan | |
---|---|---|
1 | Menghibur | Mencetak data ke konsol |
2 | Mengajukan | Mengeluarkan data ke file |
3 | File Bergulir Harian | Mengeluarkan data ke file, file tersebut ditimpa secara siklis |
4 | asinkron | Memungkinkan Anda menulis data ke appender lain secara asinkron |
5 | Stopkontak | Menulis data ke soket tertentu |
6 | JDBC | Menulis pesan ke database menggunakan protokol JDBC |
7 | JPA | Menulis pesan ke database menggunakan protokol JPA |
8 | HTTP | Mengirim acara melalui protokol HTTP ke server jarak jauh |
9 | SMTP | Menyimpan pesan dalam buffer, lalu mengirimkannya sebagai email |
Dokumentasi yang baik untuk semua appender ada di situs web resmi mereka
Dan di bawah ini kami akan mempertimbangkan yang paling populer dan sederhana.
ConsoleAppender
Appender paling sederhana adalahConsoleApender
. Seperti yang mungkin sudah Anda duga, dia hanya menulis pesannya ke konsol. Ini memiliki beberapa parameter menarik bagi kami:
Atribut | ||
---|---|---|
1 | nama | Nama penambah |
2 | Saring | Memungkinkan Anda memfilter beberapa pesan |
3 | tata letak | Menentukan pemformatan pesan saat ditampilkan |
4 | target | Menentukan di mana menulis: SYTEM_OUT atauSYSTEM_ERR |
Sangat mudah untuk mengkonfigurasinya:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%m%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
FileAppender
Appender yang paling berguna adalahFileAppender
. Tidak seperti ConsoleAppender
dia menulis pesannya ke file. Yang sangat berguna saat aplikasi Anda berjalan di suatu tempat di server. Ini memiliki banyak parameter, karena itu harus dapat menulis file pada sistem operasi yang berbeda.
Tetapi kami hanya akan mempertimbangkan yang paling populer di antara mereka.
1 | nama | Menentukan nama appender |
2 | Saring | Memungkinkan Anda memfilter beberapa pesan |
3 | tata letak | Menentukan pemformatan pesan saat ditampilkan |
4 | nama file | Menentukan nama file tempat menulis pesan |
5 | menambahkan | Jika true , maka pesan akan ditambahkan ke log lama, jika false - file log akan dibuat ulang setiap kali aplikasi dijalankan. |
6 | ukuran buffer | Mengatur ukuran buffer dalam byte |
7 | instantFlush | Jika true , maka setiap pesan sebenarnya langsung ditulis ke disk (tanpa buffer). Log mulai bekerja dengan lambat, tetapi ini menyelamatkan Anda dari kehilangan data saat program mogok. |
Anda sudah tahu cara bekerja dengan baik dengan file, jadi pengaturan ini bukanlah hal baru bagi Anda. Mengonfigurasi logger semacam itu bahkan lebih mudah daripada logger konsol:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<File name="MyFile" fileName="logs/app.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="MyFile"/>
</Root>
</Loggers>
</Configuration>
RollingFileAppender
Appender yang paling populer adalahRollingFileAppender
. Tidak seperti FileAppender
itu, ini memungkinkan Anda membagi log menjadi banyak file kecil. Ini sangat penting untuk log besar. Selain itu, ini memungkinkan Anda untuk menetapkan aturan tentang apa yang harus dilakukan dengan file lama setelah yang baru mulai ditulis.
Dan appender ini memiliki hampir seratus pengaturan berbeda. Anda dapat mengetahui lebih lanjut tentang mereka di tautan .
Pertimbangkan atribut paling populer dari appender ini:
Atribut | ||
---|---|---|
1 | nama | Menentukan nama appender |
2 | Saring | Memungkinkan Anda memfilter beberapa pesan |
3 | tata letak | Menentukan pemformatan pesan saat ditampilkan |
4 | nama file | Menentukan nama file tempat menulis pesan |
5 | filePattern | Menentukan pola penamaan untuk file arsip yang tidak lagi ditulis |
6 | kebijakan | Menentukan kondisi saat file harus mulai ditimpa |
7 | strategi | Menjelaskan apa yang harus dilakukan dengan file lama: arsip, riwayat penyimpanan berapa hari, dll. |
Ini contoh yang bagus:
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
Parameter filePattern
menentukan template untuk arsip log lama. Ada juga dua, saat dipicu, file baru akan ditulis:
TimeBasedTriggeringPolicy
– akan berfungsi jika hari baru dimulai (tanggal saat ini berubah)SizeBasedTriggeringPolicy
– akan berfungsi jika ukuran file mencapai 250MB
GO TO FULL VERSION