5.1 Senarai penapis
Logger membolehkan anda mengkonfigurasi penapisan mesej dengan sangat sejuk. Untuk melakukan ini, dia mempunyai beberapa dozen penapis dengan pelbagai parameter. Jadual di bawah menunjukkan yang paling popular.
Penapis | Penerangan | |
---|---|---|
1 | Penapis Burst | Membolehkan anda mengawal kekerapan mesej sesaat untuk tahap pengelogan tertentu. |
2 | Penapis Komposit | Membolehkan anda menetapkan berbilang penapis berjujukan. |
3 | Penapis Ambang Dinamik | Membolehkan anda mendayakan pengelogan terperinci jika maklumat tertentu ditemui dalam log. |
4 | Penapis Peta | Membolehkan anda membina ungkapan logik yang kompleks untuk penapis daripada beberapa parameter. |
5 | Penapis Penanda | Membolehkan anda menapis mesej mengikut teg, teg mesti ditambah dahulu semasa pengelogan acara. |
6 | RegexFilter | Membolehkan anda menetapkan topeng - ungkapan biasa. |
7 | StructuredDataFilter | Membolehkan anda menapis mesej dengan kehadiran data tertentu di dalamnya. |
8 | ThreadContextMapFilter | Membolehkan anda mengurus penapis berdasarkan data yang diambil daripada konteks urutan semasa. |
9 | Penapis Ambang | Mengawal pengelogan berdasarkan tahap mesej log. |
10 | Penapis Masa | Membolehkan anda menghidupkan dan mematikan penapis pada masa tertentu. |
Di bawah ini kita akan bercakap tentang hanya tiga daripadanya. Anda boleh mengetahui lebih lanjut tentang penapis ini di tapak web rasmi mereka .
5.2 Penapis Masa
Penapis TimeFilter
membolehkan anda menghidupkan dan mematikan penapis pada masa tertentu, ia mempunyai 5 parameter:
1 | mulakan | Masa mula log dalam formatHH:mm:ss |
2 | tamat | Masa log keluar dalam formatHH:mm:ss |
3 | Zon masa | Menetapkan zon waktu. |
4 | onMatch | Bagaimana untuk log jika keadaan penapis adalah benar . Mungkin ACCEPT , DENY atau NEUTRAL . Lalai NEUTRAL . |
5 | pada Tidak Padan | Bagaimana untuk log jika keadaan penapis adalah palsu . Mungkin ACCEPT , DENY atau NEUTRAL . Lalai NEUTRAL . |
Mari sediakan penapis yang akan menghidupkan pengelogan pada pukul 5 pagi dan matikannya pada pukul 5:30 pagi setiap hari. Contoh dengan konfigurasi penapis lengkap adalah di bawah:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<TimeFilter start="05:00:00" end="05:30:00" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
5.3 Penapis Regex
Penapis RegexFilter
membenarkan anda menetapkan topeng (ungkapan biasa) untuk menapis mesej. Penapis ini mempunyai 4 parameter:
1 | regex | Menentukan ungkapan biasa - topeng yang digunakan untuk menapis mesej.HH:mm:ss |
2 | gunakanRawMsg | Topeng digunakan dalam mesej sebelum memformat (benar) atau selepas memformat (salah) |
3 | onMatch | Bagaimana untuk log jika keadaan penapis adalah benar . Mungkin ACCEPT , DENY atau NEUTRAL . Lalai NEUTRAL . |
4 | pada Tidak Padan | Bagaimana untuk log jika keadaan penapis adalah palsu . Mungkin ACCEPT , DENY atau NEUTRAL . Lalai NEUTRAL . |
Mari kita sediakan penapis yang hanya membenarkan mesej yang mengandungi perkataan codegym. Contoh dengan konfigurasi penapis lengkap adalah di bawah:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<RegexFilter regex=".* codegym .*" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
5.4 Penapis Ambang
Penapis ThresholdFilter membolehkan anda mengkonfigurasi penapisan mengikut tahap mesej. Ia hanya mempunyai 3 parameter:
1 | tahap | Menetapkan nama tahap pengelogan mesej: ERROR , DEBUG , … |
2 | onMatch | Bagaimana untuk log jika keadaan penapis adalah benar . Mungkin ACCEPT , DENY atau NEUTRAL . Lalai NEUTRAL . |
3 | pada Tidak Padan | Bagaimana untuk log jika keadaan penapis adalah palsu . Mungkin ACCEPT , DENY atau NEUTRAL . Lalai NEUTRAL . |
Mari sediakan penapis yang hanya membenarkan mesej tahap DEBUG
. Contoh dengan konfigurasi penapis lengkap adalah di bawah:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
GO TO FULL VERSION