Tüm istenen çıktıyı elde etmek için kombine edilebilir nasıl log4net filtreler serin. Tüm günlük girişleri varsayılan olarak "Nötr" filtre düzenine sahiptir ve log4net varsayılan olarak nötr olan tüm girişleri günlüğe kaydeder.
Ne LevelRangeFilter
yapacak giriş seviyesi aralığında ise, bu "Kabul Et" filtre eğilim ayarlayacaktır (veya acceptOnMatch
parametre false
olarak ayarlanırsa olduğu gibi onun eğilim bırakın) onu ve olduğu "Reddet" seçeneği ile aralıkta olmayan tüm girişleri işaretler.
LevelMatchFilter
o zaman, eşsiz girişleri günkü kalacak "Reddet" girdileri eşleşen ayarlayacaktır, acceptToMatch
false
ayarlanmadığı sürece "Kabul Et" için levelToMatch
parametresinde belirtilen filtre için eğilim ayarlayacaktır önce.
<appender name="FilteredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMax value="FATAL" />
<levelMin value="ERROR" />
</filter>
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="WARN" />
<acceptOnMatch value="false" />
</filter>
</appender>
Bu kolayca üzerinde seviyesini uyarmak ve kapatma için geçiş sağlayacaktır:
Peki ne yapabiliriz istediğini elde etmek iki filtrelerin bir arada kullanmaktır. Aralığın dışındaki tüm girişler zaten "Reddet" olarak işaretlenir ve LevelMatchFilter
burada WARN seviye girişlerini Reddet olarak işaretler, böylece DenyAllFilter
gerekli değildir.
Hey! Hızlı yanıt için teşekkürler. Programlı olarak yapılabilir mi? Sadece her bir ekleyicinin değil, Logger'ın (kök) günlük seviyesini değiştirmenin bir yolunu buldum. –
Üzgünüm, yorumunu kaçırdım. Programatik olarak da mümkün olmalıdır. Burada tüm eklere nasıl ulaşılacağını görebilirsiniz: http://stackoverflow.com/questions/3016108/change-log4net-conversion-pattern-or-layout-at-runtime/3031867#3031867 –