2009-03-06 15 views
5

Üretim kodunda bir hata olduğunda e-posta günlük dosyalarına SMPTAppender ayarlıyorum. E-postanın gönderilmesini istemediğim yerel test makineleri gibi bazı makineler var. Belirli bir makineyi çalıştırıyorsanız, smtp ekleyicisini kullanmamak için Log4Net'i yapılandırın

Bir propertyfilter içinde ortam değişkeni COMPUTERNAME kullanmaya çalıştı, ancak bu işe yaramadı: Ayrıca

<file value="${HOMEDRIVE}\\loggingDirectory\\AppLogFile.${COMPUTERNAME}.log" /> 

Bu: Böyle bir dosya appender içinde BilgisayarAdı kullandık

<filter type="log4net.Filter.PropertyFilter"> 
    <Key value="COMPUTERNAME" /> 
    <StringToMatch value="myComputerName" /> 
    <Accept value="false" /> 
</filter> 

işe yaramadı (ne de beklemedim):

<filter type="log4net.Filter.PropertyFilter"> 
    <Key value="${COMPUTERNAME}" /> 
    <StringToMatch value="myComputerName" /> 
    <Accept value="false" /> 
</filter> 

E kullanımı için bir yol var mı özellik filtresindeki ortam değişkenleri? Diğer öneriler hoş geldiniz.

cevap

5

Yanlış Anahtar değerini kullanıyorsunuz. LoggingEvent.Properties koleksiyonu, "log4net: HostName" imzasına sahip olan HostName özelliği ile doldurulur.

Filtreniz gibi görünmelidir: Ayrıca

<filter type="log4net.Filter.PropertyFilter"> 
    <Key value="log4net:HostName" /> 
    <StringToMatch value="computerToExclude" /> 
    <AcceptOnMatch value="false" /> 
</filter> 

Not Kabul AcceptOnMatch değil kullanmak.

İlgili konular