2008-10-02 5 views
34

AdosNetAppender와 함께 Log4Net을 사용하여 간단한 시스템 트레이 응용 프로그램의 메시지를 SQL Server 2005 데이터베이스에 기록합니다.log4net을 통해 컴퓨터 이름을 어떻게 기록합니까?

로그 메시지와 함께 컴퓨터 이름을 기록하고 싶습니다.이 응용 프로그램은 여러 대의 컴퓨터에서 실행될 것이므로 어떤 메시지가 생성되었는지 알고 싶습니다.

하지만 appender와 함께 사용하고있는 log4net.Layout.PatternLayout을 통해이 정보를 노출하는 방법을 찾을 수 없습니다.

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

다음과 같은 매개 변수를 만들 수 있습니다

답변

72

당신은 예를 들어, 미리 채워진 특성 log4net:HostName을 사용할 수 있습니다 :

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

그런 다음 로그에 기록하기 전에이 줄을 추가

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

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

+1

미래의 독자를 위해이 AdoNetAppender를 granadaCoder

+1

미래의 독자입니다. 나는이 페이지의 FIELDS에서 온 것 같아요 : http://logging.apache.org/log4net/release/sdk/html/T_log4net_Core_LoggingEvent.htm – granadaCoder

11

: MDC.Set("machine", Environment.MachineName);

+0

완벽하게 작동했습니다. 나는 그것이 단순한 무언가 였음에 틀림 없다는 것을 알았다. 감사. –

관련 문제