2009-03-06 23 views
5

Tôi đang thiết lập SMPTAppender cho các tệp nhật ký email khi có lỗi trong mã sản xuất. Có một số máy, chẳng hạn như máy kiểm tra cục bộ, nơi tôi không muốn gửi email.Định cấu hình Log4Net để không sử dụng trình bổ sung smtp nếu chạy một máy nhất định

tôi cố gắng sử dụng các biến môi trường COMPUTERNAME trong một propertyfilter, nhưng điều này không làm việc:

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

Tôi đã sử dụng ComputerName trong một file appender như thế này:

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

này cũng không hoạt động (tôi cũng không mong đợi nó):

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

Có cách nào để sử dụng e không biến môi trường trong bộ lọc thuộc tính? Đề nghị khác chào đón.

Trả lời

5

Bạn đang sử dụng sai Giá trị khóa. Bộ sưu tập LoggingEvent.Properties được điền với thuộc tính HostName, có chữ ký "log4net: HostName".

lọc của bạn sẽ trông như thế này:

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

Cũng lưu ý để sử dụng AcceptOnMatch, không chấp nhận.

Các vấn đề liên quan