5.1 Filtre listesi
Günlükçü, mesaj filtrelemeyi çok soğuk bir şekilde yapılandırmanıza izin verir. Bunu yapmak için her türlü parametreye sahip birkaç düzine filtresi var. Aşağıdaki tablo en popüler olanları göstermektedir.
Filtreler | Tanım | |
---|---|---|
1 | Patlama Filtresi | Belirli bir kayıt düzeyi için saniyedeki mesaj sıklığını kontrol etmenizi sağlar. |
2 | Bileşik Filtre | Birden çok sıralı filtre ayarlamanıza olanak tanır. |
3 | Dinamik Eşik Filtresi | Günlükte belirli bilgiler bulunursa ayrıntılı günlük kaydını etkinleştirmenizi sağlar. |
4 | Harita Filtresi | Birkaç parametreden filtre için karmaşık bir mantıksal ifade oluşturmanıza olanak tanır. |
5 | İşaret Filtresi | Mesajları etiketlere göre filtrelemenize izin verir, etiket önce olay kaydı sırasında eklenmelidir. |
6 | normal ifade filtresi | Bir maske - normal bir ifade - ayarlamanıza izin verir. |
7 | Yapılandırılmış Veri Filtresi | İletileri, içlerinde belirli verilerin varlığına göre filtrelemenize olanak tanır. |
8 | ThreadContextMapFilter | Geçerli iş parçacığının bağlamından alınan verilere dayalı olarak filtreleri yönetmenize olanak tanır. |
9 | Eşik Filtresi | Günlük ileti düzeyine göre günlüğe kaydetmeyi denetler. |
10 | Zaman Filtresi | Filtreleri belirli zamanlarda açıp kapatmanızı sağlar. |
Aşağıda sadece üç tanesinden bahsedeceğiz. Bu filtreler hakkında daha fazla bilgiyi resmi web sitelerinde bulabilirsiniz .
5.2 Zaman Filtresi
Filtre, TimeFilter
filtreleri belirli bir zamanda açıp kapatmanıza izin verir, 5 parametreye sahiptir:
1 | başlangıç | Formatta başlangıç zamanını günlüğe kaydetmeHH:mm:ss |
2 | son | Biçimde oturum kapatma süresiHH:mm:ss |
3 | saat dilimi | Saat dilimini ayarlar. |
4 | Maçta | Filtre koşulu doğruysa nasıl günlüğe kaydedilir . Belki ACCEPT , DENY veya NEUTRAL . varsayılan NEUTRAL _ |
5 | onMismatch | Filtre koşulu yanlışsa nasıl günlüğe kaydedilir . Belki ACCEPT , DENY veya NEUTRAL . varsayılan NEUTRAL _ |
Her gün günlüğe kaydetmeyi sabah 5'te açacak ve sabah 5:30'da kapatacak bir filtre ayarlayalım. Eksiksiz bir filtre yapılandırmasına sahip bir örnek aşağıdadır:
<?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 Normal İfade Filtresi
Filtre, RegexFilter
mesajları filtrelemek için bir maske (normal ifade) ayarlamanıza olanak tanır. Bu filtrenin 4 parametresi vardır:
1 | normal ifade | Mesajları filtrelemek için kullanılan bir maske olan normal bir ifade belirtir.HH:mm:ss |
2 | kullanımRawMsg | Maske, mesaja biçimlendirmeden önce (doğru) veya biçimlendirmeden sonra (yanlış) uygulanır. |
3 | Maçta | Filtre koşulu doğruysa nasıl günlüğe kaydedilir . Belki ACCEPT , DENY veya NEUTRAL . varsayılan NEUTRAL _ |
4 | onMismatch | Filtre koşulu yanlışsa nasıl günlüğe kaydedilir . Belki ACCEPT , DENY veya NEUTRAL . varsayılan NEUTRAL _ |
Sadece codegym kelimesini içeren mesajlara izin verecek bir filtre oluşturalım. Eksiksiz bir filtre yapılandırmasına sahip bir örnek aşağıdadır:
<?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 Eşik Filtresi
ThresholdFilter filtresi, filtrelemeyi mesaj düzeyine göre yapılandırmanıza olanak tanır. Yalnızca 3 parametresi vardır:
1 | seviye | Mesaj günlüğü seviyesinin adını ayarlar: ERROR , DEBUG , … |
2 | Maçta | Filtre koşulu doğruysa nasıl günlüğe kaydedilir . Belki ACCEPT , DENY veya NEUTRAL . varsayılan NEUTRAL _ |
3 | onMismatch | Filtre koşulu yanlışsa nasıl günlüğe kaydedilir . Belki ACCEPT , DENY veya NEUTRAL . varsayılan NEUTRAL _ |
Sadece level mesajlarına izin verecek bir filtre kuralım DEBUG
. Eksiksiz bir filtre yapılandırmasına sahip bir örnek aşağıdadır:
<?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