특정 컴퓨터를 실행하는 경우 SMTP Appender를 사용하지 않도록 Log4Net을 구성하십시오.

StackOverflow https://stackoverflow.com/questions/620248

  •  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를 사용하지 않고 수락하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top