5.1 Filtrlar ro'yxati
Logger xabarlarni filtratsiya qilishni juda qulay tarzda sozlash imkonini beradi. Buning uchun unda turli-tuman parametrlar bilan o'nlab filtrlar mavjud. Quyida jadvalda eng mashhur filtrlar keltirilgan:
| Filtrlar | Tavsif | |
|---|---|---|
| 1 | BurstFilter | Ma'lum darajadagi log uchun soniyada xabar chastotasini boshqarishga imkon beradi. |
| 2 | CompositeFilter | Bir nechta ketma-ket filtrlar o'rnatishga imkon beradi. |
| 3 | DynamicThresholdFilter | Logda ma'lum bir ma'lumot mavjud bo'lsa, batafsil loglashni yoqishga imkon beradi. |
| 4 | MapFilter | Birinchi o'ringa turli parametrlar orqali murakkab mantiqiy ifoda yaratishga imkon beradi. |
| 5 | MarkerFilter | Voqea loglash vaqtida oldindan qo'shilgan teglar orqali xabarlarni filtrlaydi. |
| 6 | RegexFilter | Maska - muntazam ifodani o'rnatishga imkon beradi. |
| 7 | StructuredDataFilter | Xabarlar ichida ma'lum bir ma'lumot mavjudligi orqali filtrlaydi. |
| 8 | ThreadContextMapFilter | Joriy oqimdan olingan ma'lumotlar asosida filtrlarni boshqaradi. |
| 9 | ThresholdFilter | Log xabari darajasiga asoslangan holda loglashni boshqaradi. |
| 10 | TimeFilter | Muayyan vaqt ichida filtrlarni yoqish va o'chirishga imkon beradi. |
Quyida biz ularning faqat uchta haqida gapiramiz. Ko'proq ma'lumotni ularning rasmiy saytida o'qib olishingiz mumkin.
5.2 TimeFilter
TimeFilter muayyan vaqt ichida filtrlarni yoqish va o'chirish imkonini beradi va 5 ta parametrga ega:
| 1 | start | Loglashni boshlash vaqti HH:mm:ss formatida |
| 2 | end | Loglashni o'chirish vaqti HH:mm:ss formatida |
| 3 | timezone | Vaqt zonasini belgilaydi. |
| 4 | onMatch | Filtr sharti rost bo'lganda loglash. ACCEPT, DENY yoki NEUTRAL bo'lishi mumkin. Standart NEUTRAL. |
| 5 | onMismatch | Filtr sharti yolg'on bo'lganda loglash. ACCEPT, DENY yoki NEUTRAL bo'lishi mumkin. Standart NEUTRAL. |
Keling, har kuni erta tongda 5:00 da loglashni yoqib, 5:30 da uni o'chiradigan filtrni sozlaymiz. Quyida to'liq konfiguratsiyali filtr misoli:
<?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 RegexFilter
RegexFilter filtri xabarlarni filtratsiya qilish uchun muntazam ifodalar maskasini o'rnatishga imkon beradi. Ushbu filtr 4 ta parametrga ega:
| 1 | regex | Xabarlarni filtratsiya qilish uchun qo'llaniladigan muntazam ifodalar maskasi.HH:mm:ss |
| 2 | useRawMsg | Maska xabar formatlanishidan oldin (true) yoki so'ng (false) qo'llaniladi |
| 3 | onMatch | Filtr sharti rost bo'lganida loglash. ACCEPT, DENY yoki NEUTRAL bo'lishi mumkin. Standart NEUTRAL. |
| 4 | onMismatch | Filtr sharti yolg'on bo'lganida loglash. ACCEPT, DENY yoki NEUTRAL bo'lishi mumkin. Standart NEUTRAL. |
Keling, faqat "javarush" so'zini o'z ichiga olgan xabarlarni o'tkazadigan filtrni sozlaymiz. Quyida to'liq konfiguratsiyali filtr misoli:
<?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=".* javarush .*" 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 ThresholdFilter
ThresholdFilter filtri xabar darajasi bo'yicha filtratsiyani sozlash imkonini beradi. U atigi 3 ta parametrga ega:
| 1 | level | Xabarlarni loglash darajasini belgilaydi: ERROR, DEBUG, … |
| 2 | onMatch | Filtr sharti rost bo'lganida loglash. ACCEPT, DENY yoki NEUTRAL bo'lishi mumkin. Standart NEUTRAL. |
| 3 | onMismatch | Filtr sharti yolg'on bo'lganida loglash. ACCEPT, DENY yoki NEUTRAL bo'lishi mumkin. Standart NEUTRAL. |
Keling, faqat DEBUG darajasidagi xabarlarni o'tkazadigan filtrni sozlaymiz. Quyida to'liq konfiguratsiyali filtr misoli:
<?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