특정 컴퓨터를 실행하는 경우 SMTP Appender를 사용하지 않도록 Log4Net을 구성하십시오.
-
03-07-2019 - |
문제
제작 코드에 오류가있을 때 로그 파일을 이메일로 보내기 위해 smptAppender를 설정하고 있습니다. 현지인 테스트 머신과 같은 일부 컴퓨터가 있으며 이메일을 보내고 싶지 않습니다.
PropertyFilter에서 Environment Variable ComputerName을 사용하려고했지만 작동하지 않았습니다.
<filter type="log4net.Filter.PropertyFilter">
<Key value="COMPUTERNAME" />
<StringToMatch value="myComputerName" />
<Accept value="false" />
</filter>
나는 다음과 같은 파일 appender에서 computername을 사용했습니다.
<file value="${HOMEDRIVE}\\loggingDirectory\\AppLogFile.${COMPUTERNAME}.log" />
이것은 또한 효과가 없었습니다 (또한 기대하지도 않았습니다).
<filter type="log4net.Filter.PropertyFilter">
<Key value="${COMPUTERNAME}" />
<StringToMatch value="myComputerName" />
<Accept value="false" />
</filter>
속성 필터에서 환경 변수를 사용하는 방법이 있습니까? 다른 제안을 환영합니다.
해결책
잘못된 키 값을 사용하고 있습니다. loggingevent.properties 컬렉션은 "log4net : hostname"서명이있는 호스트 이름 속성으로 채워져 있습니다.
필터는 다음과 같습니다.
<filter type="log4net.Filter.PropertyFilter">
<Key value="log4net:HostName" />
<StringToMatch value="computerToExclude" />
<AcceptOnMatch value="false" />
</filter>
acceptOnMatch를 사용하지 않고 수락하지 않습니다.
제휴하지 않습니다 StackOverflow