문제

에 따르면 log4net 문서, RollingFileAppender는 메시지가 기록 될 때만 로그 파일 만 롤링합니다. 이 파일에 로그인해야하지만 매일 다른 데이터베이스로 가져옵니다. 파일이 필요하기 때문에 데이터베이스 appender를 사용할 수 없으며 로그 파일에서 데이터를 데이터베이스로 변환해야합니다 (직접 사본이 아님). 문제는 자정 이후 로그 활동이 없으면 로그가 롤링되지 않는다는 것입니다. 수입업자는 전일일 파일을 찾습니다 (그리고이 코드를 변경할 수 없습니다). 활동이없고 로그가 롤링되지 않은 경우 수입업자는 파일을 찾지 못합니다. 어쨌든 깨어나고 롤을 강제하는 다른 실이 없으면 자정에 통나무를 강제로 강제로 강요 할 수 있습니까? 커스텀 appender가 이것을 할 수 있습니까? 가능하면 이것을 피하고 싶습니다.

도움이 되었습니까?

해결책

동일한 구성을 사용하여 더미 로그 항목을 작성하는 자정 직후 이벤트를 시작하는 Windows 서비스를 작성하십시오.

다른 팁

"롤오버 루틴으로 이어지는 코드 경로는 무엇입니까?"라는 질문의 시점에서 이것에 대해 생각해야합니다. 그 루틴에 어떻게 도달하는지 알면 트리거하는 방법을 결정할 수 있습니다.

커스텀 appender가 할 수 있습니까? 물론, 그러나 appender의 코드는 당신이 그것을 통해 로그인 할 때까지 실행되지 않으므로 정사각형으로 돌아갑니다.

질문에 관해서는 "어쨌든 깨어나고 롤을 강요하지 않고 자정에 통나무를 강제로 강제로 강제해야합니까?" 코드가 실행되지 않고 자정에? " 나는 그것에 대해 재미 있거나 당신을 모욕하려고 노력하지 않습니다. 나는 단지 당신을 위해 그것을 희망적으로 대답 할 수있는 방식으로 질문을 다시 만들려고 노력하고 있습니다. :-)

이것을 해결하는 가장 쉬운 방법은 파일이 회전하도록 강제로 일시 일어나서 로그를 작성하는 것입니다.

에 따르면 RollingFileAppender 문서 매일 롤링하도록 설정할 수 있습니다.이 구성을 참조하십시오.

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logfile" />
    <appendToFile value="true" />
    <rollingStyle value="Date" />
    <datePattern value="yyyyMMdd" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top