2010-03-02 6 views
8

여러 스레드가 병렬로 실행되는 스크립트가 있습니다. 이 스레드는 Log4Net RollingFileAppender 파일에 기록합니다. 이 로그를 읽는 것은 모든 스레드 로그가 섞여 있기 때문에 매우 혼란 스럽습니다. 임 로그를 작성하는 좋은 방법이 무엇인지 궁금하고 이러한 파일을 읽는 가장 좋은 방법은 특정 스레드의 디버깅 정보를 읽는 것이 더 쉬워 지도록하는 것입니다.여러 스레드에서 생성 된 Log4Net의 로그 읽기

답변

7

로그 출력에 스레드 이름을 포함하도록 구성 파일을 업데이트하십시오. 코드에 스레드 이름을 설정하면 동일한 이름이 파일에 기록됩니다.

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="service.log" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="2MB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     **<conversionPattern value="%-5level : [%t] - %message%newline" />** 
    </layout> 
</appender> 

UPDATE 내가 이것을 보여주기 위해 간단한 POC 응용 프로그램을 작성 :이 log4net 설정 파일을 통해 <들 - ConversionPattern > 태그를 스레드 이름 등의 간단한 예입니다. http://codereport.net/logging-the-thread-name-with-log4net/

+0

Thread.Name MSDN 링크 : http://msdn.microsoft.com/en-us/library/system.threading.thread.name.aspx –

+0

스레드 정보를 추가 한 다음 LogExpert (http : //www.log-expert.de/) 로그를 필터링하여 각 스레드의 추적을 쉽게 읽을 수 있습니다. –

0

데이터베이스와 같이 처리하기 쉬운 것으로 기록하십시오. 데이터베이스 테이블에 AdoNetAppender 로깅을 사용하면 스레드를 쉽게 정렬하고 필터링 할 수 있습니다.

log4net 사이트에서이 문제를 해결하는 방법은 config samples입니다.

관련 문제