2014-10-17 1 views
0

현재 log4net을 사용하는 응용 프로그램을 사용하고 있습니다. 응용 프로그램이 Windows 탐색기를 통해 시작될 때 로깅이 제대로 작동하지만 응용 프로그램이 Windows 셸로 설정된 경우 아무 것도 기록되지 않습니다. 응용 프로그램이 쉘일 때 Windows 탐색기가 제공하지 않는 log4net 종속성이 있습니까?응용 프로그램이 쉘로 설정되어 있으면 log4net이 시작되지 않습니다.

편집 : 응용 프로그램 (이것은 WPF 응용 프로그램입니다) OnStartUp()를 통해 시동 후

log4net가 다른 어셈블리에 초기화 및 구성됩니다.

초기화 및 log4net의 구성은 다음과 같습니다

var assembly = Assembly.GetEntryAssembly(); 
    log4net.GlobalContext.Properties["ApplicationName"] = (assembly != null) ? assembly.GetName().Name : "Unmanaged"; 

    var log4NetFileInfo = new FileInfo("log4net.config"); 
    log4net.Config.XmlConfigurator.ConfigureAndWatch(log4NetFileInfo); 
+1

일부 코드를 표시 할 수 있습니까? log4net은 어떻게 호출됩니까? 어떻게 데이터를 기록하려고합니까? – czuroski

답변

0

그것은 아마 권한 문제입니다. Log4net은 죽은 응용 프로그램보다 로깅이 더 좋지 않다는 정당한 이유로 오류 발생시 자동으로 실패하도록 설계되었습니다.

Windows 탐색기에서 Windows 셸과 다른 자격 증명으로 실행하고 있습니까? 상대 경로를 사용하여 log4net 구성 파일을 찾으십니까? 현재 작업 디렉토리가 앱을 시작하는 두 가지 방법간에 차이가 있습니까?

log4net 내부 디버깅을 활성화하는 방법에 대한 자세한 내용은이 질문에 대한 대답 (Log4net doesn't write to file)을 참조하십시오.

+0

Log4net이 주 응용 프로그램의 어셈블리 정보에 구성을 추가하고 GetLogger()를 호출하여 현재 (쉘로) ​​작동하도록했기 때문에 이것이 쓰기 문제는 아니라고 생각합니다. 이상하게도 메인 폴더는 'null'로 표시되지만 여전히 올바른 로깅 파일을 가지고 있습니다. –

관련 문제