2009-12-14 6 views
1

고객의 이상한 버그 리포트 : "로그 파일 마지막 수정 날짜가 로그 엔트리 타임 스탬프보다 오래되었습니다."log4net 로그 파일 수정 날짜가 로그 항목보다 오래되었습니다. 타임 머신?

차이는 일 (~ 2 일)입니다. 그것은 지금까지 단 하나의 알려진 사례입니다.

저는 log4net 구현에서 전문가가 아니며 제 3 자로 만 사용합니다. 로거 구성이 제공되면 주어진 구성이 잘못되었거나 log4net RollingFileAppender 개념의 오해의 원인이 될 가능성이 있습니까?

문제의 가능한 출처로 log4net에만 관심이 있습니다 (예 : 이해할 수있는 외부 방법이 있습니다 ... 실수로 날짜를 수정 한 일부 허위 로그 파일 관리 도구)

코드에서 사용

<appender name="CustomAppender" type="log4net.Appender.RollingFileAppender"> 
    <param name="File" value="log.txt" /> 
    <param name="AppendToFile" value="true" /> 
    <param name="MaxSizeRollBackups" value="2" /> 
    <param name="RollingStyle" value="Size" /> 
    <param name="StaticLogFileName" value="true" /> 
    <param name="MaximumFileSize" value="100MB" /> 
    <layout type="log4net.Layout.PatternLayout,log4net"> 
    <conversionPattern value="%date %-5level %message%newline" /> 
    </layout> 
</appender> 
<logger name="CustomLogger" additivity="false"> 
    <level value="ALL" /> 
    <appender-ref ref="CustomAppender" /> 
</logger> 
곧장 앞으로 (간체)입니다 :

LogManager.GetLogger("CustomLogger").Info("Message"); 

log4net 버전 : 1.2.10.0 응용 프로그램은 Windows 서비스입니다. 언어 - C# 3.0,하지만 이것은 중요하지 않습니다.

답변

0

log4net을 사용하여 수시로 확인합니다. 보고 된 datetime은 아마도 로그 파일이 log4net에 의해 쓰기 위해 마지막으로 열렸던 날짜 시간 일뿐입니다.

파일이 다시 닫힐 때까지 파일 datetime을 업데이트하지 못할 수 있습니다.

[편집 : 난 그냥 내 컴퓨터에 로컬로 간단한 예를 강타했고 당신이 설명하는 동작을 볼 수 없지만, 내가 전에 본 - 아마 윈도우 2003 서버 (AS 내가 지금 사용하고있는 XP에 반대). 가능한 경우이를 제거 할 수 있는지 확인하십시오.