2011-01-24 7 views
2

Ent Lib 4.1 로깅 응용 프로그램 블록을 사용하는 응용 프로그램이 있습니다. 이 응용 프로그램은 XP SP2 +, Windows Vista 및 Windows 7에서 실행됩니다.Microsoft 엔터프라이즈 라이브러리 4.1 Windows XP SP3에서 로깅 실패

대부분의 경우 로깅이 정상적으로 작동합니다. (일반적으로 이벤트 로그 추적 수신기를 대상으로합니다.) 때로는 무엇이 트리거되는지 모르지만 Windows XP 시스템은 단순히 로깅을 중지합니다. 플랫 파일 추적 수신기를 추가하여 이벤트 로그와 관련된 문제인지 확인했지만 플랫 파일이 작동하지 않습니다. 다시 부팅해도 문제가 해결되지 않습니다.

실패한 모든 컴퓨터에서 이전에 작동했습니다. 그것은 또한 Windows XP SP2/SP3에 고립 된 것처럼 보입니다. Vista 또는 7에서는 발생하지 않습니다.

아이디어가 있습니까?

업데이트 : 플랫 파일을 제외한 모든 추적 수신기를 제거해 보았습니다. 그래서 문제는 이벤트 로그 추적 수신기와 관련이 있으며, 무엇이 일어나고 있는지는 Ent Lib이 로깅 프로세스와 관련된 오류를 포함하여 아무것도 로깅하지 못하게합니다.

답변

3

@RMD, 맞습니다. 예외가 발생하면 (예 : 이벤트 로그가 꽉 찬 경우) 예외로 인해 해당 카테고리의 다른 모든 추적 수신기가 처리되지 않습니다.

추적 수신기에 대한 로그 항목이 기록되지 않습니다.

반면에, 그것은 완전히 사실이 아닙니다. 예, 모든 일반 추적 수신기는 처리되지 않지만 여전히 특수 소스 오류가 있습니다. 나는 어떤 로깅 오류 캡처 (내 경험에서 이벤트 로그 등 권한이 더 문제를 줄 것이다) 자체 파일이 설정 추천 : 그 적절한 권한 설정이 있었다면

<specialSources> 
    <errors switchValue="All" name="Logging Errors &amp; Warnings"> 
    <listeners> 
     <add name="Error Flat File Destination" /> 
    </listeners> 
    </errors> 
</specialSources> 

및 디스크가 가득하지 않았다 (등) 당신은 원래의 정보와 함께 해당 로그 파일에 오류를 볼 것입니다 :

Message: Tracing to LogSource 'Your Event Source' failed. Processing for other sources will continue. See summary information below for more information. Should this problem persist, stop the service and check the configuration file(s) for possible error(s) in the configuration of the categories and sinks. 

Summary for Enterprise Library Distributor Service: 
====================================== 
[Original Log Entry] 

Exception Information Details: 
====================================== 
Exception Type: System.ComponentModel.Win32Exception 
NativeErrorCode: 1502 
ErrorCode: -2147467259 
Message: The event log file is full 
Data: System.Collections.ListDictionaryInternal 
TargetSite: Void InternalWriteEvent(UInt32, UInt16, System.Diagnostics.EventLogEntryType, System.String[], Byte[], System.String) 
HelpLink: NULL 
Source: System 

그래서, 당신은 당신이 어떤 로그로 추출하고 수동으로 삽입 할 수 있습니다 원래 로그 정보를 얻을 것이다 기록 (예 :보고, 분석). 게다가 보너스로 로그 항목을 쓸 수없는 이유에 대한 정보를 얻을 수 있으므로 (잘하면!) 수정 될 수 있습니다.

1

나는 그것을 알아 냈다. 분명히 한 범주에 대해 하나의 추적 수신기가 실패하면 추적 수신기에 대한 로그 항목이 기록되지 않습니다. 즉, 이벤트 로그 추적 수신기가 실패하면 플랫 파일 추적 수신기가 호출되지 않습니다.

내 경우에는 XP 시스템에서 이벤트 로그가 가득 찼습니다. 이로 인해 이벤트 로그 추적 수신기가 실패하게됩니다.

관련 문제