Senarai lampiran
Logger membolehkan anda menyimpan data ke beberapa fail sekaligus. Aliran data keluaran sedemikian dipanggil appenders (dari append). Terdapat beberapa pelengkap standard, jadi kami hanya akan merangkumi yang paling popular:
Penambah | Penerangan | |
---|---|---|
1 | Konsol | Mencetak data ke konsol |
2 | Fail | Mengeluarkan data ke fail |
3 | DailyRollingFile | Mengeluarkan data ke fail, fail ditimpa secara kitaran |
4 | tak segerak | Membolehkan anda menulis data ke penambah lain secara tidak segerak |
5 | soket | Menulis data ke soket tertentu |
6 | JDBC | Menulis mesej ke pangkalan data menggunakan protokol JDBC |
7 | JPA | Menulis mesej ke pangkalan data menggunakan protokol JPA |
8 | HTTP | Menghantar acara melalui protokol HTTP ke pelayan jauh |
9 | SMTP | Menyimpan mesej dalam penimbal, dan kemudian menghantarnya sebagai e-mel |
Dokumentasi yang baik untuk semua pelengkap ada di laman web rasmi mereka
Dan di bawah ini kita akan mempertimbangkan yang paling popular dan mudah daripada mereka.
ConsoleAppender
Penambah yang paling mudah ialahConsoleApender
. Seperti yang anda duga, dia hanya menulis mesejnya ke konsol. Ia mempunyai beberapa parameter yang menarik untuk kami:
Atribut | ||
---|---|---|
1 | nama | Nama lampiran |
2 | penapis | Membolehkan anda menapis beberapa mesej |
3 | susun atur | Menentukan pemformatan mesej apabila output |
4 | sasaran | Menentukan tempat untuk menulis: SYTEM_OUT atauSYSTEM_ERR |
Ia 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
Penambah yang paling berguna ialahFileAppender
. Tidak seperti ConsoleAppender
dia menulis mesejnya ke fail. Yang sangat berguna apabila aplikasi anda berjalan di suatu tempat pada pelayan. Ia mempunyai banyak parameter, kerana ia mesti boleh menulis fail pada sistem pengendalian yang berbeza.
Tetapi kami akan mempertimbangkan hanya yang paling popular daripada mereka.
1 | nama | Nyatakan nama pelampir |
2 | penapis | Membolehkan anda menapis beberapa mesej |
3 | susun atur | Menentukan pemformatan mesej apabila output |
4 | nama fail | Menentukan nama fail tempat menulis mesej |
5 | tambahkan | Jika true , maka mesej akan ditambahkan pada log lama, jika false - fail log akan dicipta semula setiap kali aplikasi dimulakan. |
6 | Saiz penimbal | Menetapkan saiz penimbal dalam bait |
7 | segeraFlush | Jika true , maka setiap mesej sebenarnya ditulis ke cakera serta-merta (tanpa penimbal). Log mula berfungsi dengan perlahan, tetapi ini menyelamatkan anda daripada kehilangan data apabila program ranap. |
Anda sudah tahu cara berfungsi dengan baik dengan fail, jadi tetapan ini bukanlah perkara baharu kepada anda. Mengkonfigurasi logger sedemikian adalah 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
Penambah yang paling popular ialahRollingFileAppender
. Tidak seperti FileAppender
itu, ia membolehkan anda membahagikan log kepada banyak fail kecil. Ini sangat penting untuk log besar. Di samping itu, ia membolehkan anda menetapkan peraturan untuk perkara yang perlu dilakukan dengan fail lama selepas yang baharu mula ditulis.
Dan appender ini mempunyai hampir seratus tetapan yang berbeza. Anda boleh mengetahui lebih lanjut tentang mereka di pautan .
Pertimbangkan atribut yang paling popular bagi penambah ini:
Atribut | ||
---|---|---|
1 | nama | Nyatakan nama pelampir |
2 | penapis | Membolehkan anda menapis beberapa mesej |
3 | susun atur | Menentukan pemformatan mesej apabila output |
4 | nama fail | Menentukan nama fail tempat menulis mesej |
5 | failCorak | Menentukan corak penamaan untuk fail arkib yang tidak lagi ditulis |
6 | dasar | Menentukan keadaan apabila fail harus mula ditulis ganti |
7 | strategi | Menerangkan perkara yang perlu dilakukan dengan fail lama: arkib, sejarah untuk berapa hari disimpan, dsb. |
Berikut adalah contoh yang baik:
<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 templat untuk arkib log lama. Terdapat juga dua, apabila dicetuskan, fail baharu akan ditulis:
TimeBasedTriggeringPolicy
– akan berfungsi jika hari baharu bermula (tarikh semasa berubah)SizeBasedTriggeringPolicy
– akan berfungsi jika saiz fail mencapai 250MB
GO TO FULL VERSION