2009-03-13 5 views
29

Log4net을 사용하고 있습니다. 특히 Castle.Windsor에 연결하면 놀라운 로깅 프레임 워크입니다. 그러나 ...Log4Net의 LogFileAppender 최대 파일 크기

일반적으로 롤링 파일 appender를 사용하지만, 실제로 원하는 것보다 많은 로그 파일이 생성되므로 최신 프로젝트의 경우 대신 기본 LogFileAppender를 사용했지만 문제는 로그 파일은 계속 증가합니다 (영원히 보입니다). 나는 펜더를 어떻게 알 수

는 이전 로그를 제거하고 파일에 새로 추가 고정 된 크기를 가서 (그리고 시작되지합니다

내 현재의 구성은 다음과 같습니다?

<appender name="LogFileAppender" type="log4net.Appender.FileAppender"> 
    <file value="E:\Logs\iWater\Schedule-Dispatch-API.log"/> 
    <param name="AppendToFile" value="true"/> 
    <maximumFileSize value="2048KB"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%-16date{dd MMM HH:mm:ss} %-7level %-25.35logger{1} %message%newline"/> 
    </layout> 
</appender> 

그 최대 파일 크기 속성이 존중되지 않는 것 같습니다. 어떤 해결책이 있습니까?

또는 하나의 파일 만 생성하도록 롤 파일 첨부 프로그램을 구성하는 방법은 무엇입니까?

답변

55

FileAppender 클래스를 사용하여 파일을 통해 롤의 수를 제한합니다. RollingFileAppender를 사용하는 경우에만 해당 파일을 가져옵니다. 다음은 백업없이 파일을 고정 된 최대 크기로 제한하는 예제입니다 (maxSizeRollBackups를 0으로 설정). (기본적으로 기존의 모든 기록을 삭제하고 시작됩니다) 파일이 최대 크기에 도달하면, 그것은 잘라 참고 :

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="log.txt" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="0" /> 
    <maximumFileSize value="10MB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 
+19

완전 절단을 방지하고 여전히 _too 많은 로그 files_의보고 문제를 해결하기 위해, 나는를 설정하는 것이 좋습니다 것입니다 maxSizeRollBackups를 낮은 수로 변경하십시오. 2, 가능하게 maximumFileSize를 적절히 줄입니다 (2의 경우, 3으로 나눕니다). 이렇게하면 잘린 후 즉시 최신 로그 메시지 중 2/3을 사용할 수 있습니다. –

2

LogFileAppender는 출력 파일 크기 제한을 지원하지 않습니다 (적어도 찾을 수있는 참조에서). 파일 크기를 제한하려면 RollingFileAppender를 사용하고 크기를 굴리고 파일 크기 제한을 설정하십시오.

는 MAXFILESIZE/MaximumFileSize 속성이없는 MaxSizeRollBackups 속성