2010-01-14 2 views
2

매일 log4net에 대한 하나의 로그 파일을 얻는 방법으로 log4net에 대한 appender를 정의해야하지만 총 파일 수는 30 개로 제한됩니다. 30 일 후에는 이전 항목을 삭제하십시오.날짜에 따라 달라지는 log4net appender를 알고 있습니까? 그러나 총 파일 수를 제한 하시겠습니까?

저는 RollingFileAppender로 시도했지만 그게 specifying a limit of files to keep is not supported 인 것 같습니다. 내가 사용할 수있는 대체 솔루션을 알고 있습니까?

+0

어떻게 제한되기를 원하십니까? 고대 파일을 억제함으로써? 나는 그 일을하는 원리를 보지 못합니다 ... – serhio

+0

그냥 오래된 파일을 지우고 싶습니다. 이것은 저장 공간이 제한적인 모바일 장치에서 실행되는 응용 프로그램입니다. 나는 오래된 로그 파일에 대해서는 신경 쓰지 않지만, 자동적으로 퍼지를 원한다. –

+0

log4net은 매일 rollingfileappender에 대해 새로운 로그를 생성하지만 실제로 삭제할 수 있는지는 의심 스럽습니다. – serhio

답변

2

http://logging.apache.org/log4net/release/config-examples.html 나는 몇 달 전에이로보고 약간의 시간을 보냈다. v1.2.10에서는 롤링 날짜를 기준으로 이전 로그 파일을 삭제할 수 없습니다. 다음 릴리스의 작업 목록에 있습니다. 나는 소스 코드를 가져다가 직접 기능을 추가하고 관심이 있다면 다른 사람들을 위해 게시했다. 문제와 패치는 https://issues.apache.org/jira/browse/LOG4NET-27에서 찾을 수 있습니다.

+0

감사합니다. 나는 당신의 패치를 살펴볼 것입니다. 나는 결국 appender를 직접 수정했다. (정확하게, 서브 클래 싱되어 정확한 것임), 날짜 만 큼 (날짜와 크기가 아닌)으로 만 처리 할 필요가 있었기 때문에 실제로 public으로 만드는 것을 고려하지 않았다. –

1

C# WinService를 작성하거나 응용 프로그램에 하루에 한 번씩 이전 로그 파일을 모니터링하고 삭제하는 BackgroundWorker를 만듭니다. 이 범위에 FileSystemWatcher을 사용할 수 있습니다.

또는 새 로그 파일이있는 각 응용 프로그램에서 테스트하고 삭제하십시오.

다른 옵션은 로컬에 파일을 저장하지 않지만 네트워크 (메일, 원격 서버 등)를 통해 파일을 보냅니다.

중복 질문 : herehere도 참조하십시오.

1

'복합'로그 유형을 사용할 수 있습니까? 여기에 더 :

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
<file value="logfile" /> 
<appendToFile value="true" /> 
<rollingStyle value="Composite" /> 
<datePattern value="yyyyMMdd" /> 
<maxSizeRollBackups value="10" /> 
<maximumFileSize value="1MB" /> 
<layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
</layout> 

+0

내가 틀렸다면 저를 고쳐주세요. 그러나 이것은 실제로 매일 새 파일을 생성 할 것입니다. 그리고 로그가 1MB를 초과하면 같은 날짜의 다른 로그 파일을 생성 할 것이고이 날짜의 로그 수가 10을 초과 할 때 삭제할 것입니다. 하지만 (날짜별로) 전체 로그 수를 제한하지는 않습니다. –

관련 문제