2012-03-21 1 views
1

언젠가 nLog가 모든 디버그 정보를 로깅하지 않습니다 (일부는 log.Debug ... 디버그 파일에 없습니다). 왜 이런 일이 발생했는지, 어떻게 피할 수 있습니까?nLog 누락 된 로그 데이터

는 여기에 내가

private static Logger log = LogManager.GetCurrentClassLogger(); 
... 
log.Debug("Some debug info"); 

감사합니다 다음 사용하고 코드에서

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <variable name="appTitle" value="Service"/> 
    <targets async="true"> 
    <target name="fallbackDebug" xsi:type="FallbackGroup" returnToFirstOnSuccess="true"> 
     <target xsi:type="File" fileName="C:\Logs\${date:format=yyyyMMdd}_Debug.txt" layout="..."/> 
     <target xsi:type="File" fileName="C:\Logs\${date:format=yyyyMMdd}_Debug_bu.txt" layout="..."/> 
    </target> 
    </targets> 
    <rules> 
    <logger name="*" levels="Trace,Debug,Error,Fatal"  writeTo="fallbackDebug" /> 
    </rules> 
</nlog> 

내 nLog 구성입니다!

+0

어떻게 당신이 뭔가가 없음을 알 수 있습니까? 문제를 재현하는 작은 샘플 응용 프로그램을 제공 할 수 있습니까? –

+0

매우 큰 시스템에서만 발생하는 문제를 재현하는 작은 응용 프로그램을 제공 할 수 없으며 짧은 시간 내에 많은 디버그 정보를 기록하고 있습니다. 예를 들어 DB에 주문을 만들기 전에 해당 작업을 로깅하므로 뭔가 빠졌습니다. DB를 살펴보면 주문이 표시되지만 해당 작업에 해당하는 로그는 표시되지 않습니다. – zvjerka24

+0

이상하게 들립니다. 특정 장소에서 NLog와 독립적 인 간단한 로깅을 추가하여 작동 여부를 확인할 수 있습니다. 작동하지 않으면 NLog가 문제가되지 않지만 코드를 사용하면 주문을 삽입하는 다른 코드가 실행되는 것으로 보입니다. 간단한 로깅이 작동하지만 NLog가 작동하지 않으면 NLog가 뭔가를 놓친다는 것을 증명했습니다. –

답변

1

끝에 LogManager.Flush() 메서드를 호출해야합니다.

예 :

private static Logger log = LogManager.GetCurrentClassLogger(); 
... 
log.Debug("Some debug info"); 
... 
LogManager.Flush();