문제

AdonetAppender와 함께 log4net을 사용하여 간단한 Systray 응용 프로그램에서 SQL Server 2005 데이터베이스에 메시지를 로그인합니다.

이 응용 프로그램이 여러 컴퓨터에서 실행되기 때문에 로그 메시지와 함께 기계 이름을 기록하고 싶습니다. 메시지가 시작된 메시지를 알아야합니다.

그러나 appender와 함께 사용하는 log4net.layout.patternlayout을 통해이 정보를 노출시키는 방법을 찾을 수 없습니다.

이 방식으로 log4net을 통해 컴퓨터 이름을 기록하는 방법이 있습니까?

도움이 되었습니까?

해결책

사전 인구가있는 속성을 사용할 수 있습니다 log4net:HostName, 예를 들어:

<conversionPattern value="%property{log4net:HostName}" />

이렇게하면 MDC를 채울 필요가 없습니다.

다른 팁

다음과 유사한 매개 변수를 만들 수 있습니다.

<parameter>
  <parameterName value="@machine" />
  <dbType value="String" />
  <size value="255" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%X{machine}" />
  </layout>
</parameter>

그런 다음 로그에 글을 쓰기 전에이 줄을 추가하십시오. MDC.Set("machine", Environment.MachineName);

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