@RMD,你是對的。當引發異常(例如事件日誌已滿)時,該異常會導致該類別的所有其他跟蹤偵聽器不被處理。
任何 跟蹤偵聽器都不會記錄日誌條目。
另一方面,這不完全正確。是的,所有常規跟蹤偵聽器都不會被處理,但仍然存在特殊源錯誤。我建議將其設置爲自己的文件(在我的經驗,事件日誌將給予權限等更多的問題)來捕獲任何記錄錯誤:
<specialSources>
<errors switchValue="All" name="Logging Errors & 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
所以,你會得到你也許能夠提取和手動插入到任何記錄您的原始日誌信息您保存的歷史記錄(例如報告,分析)。另外作爲獎勵,你會得到有關爲什麼無法寫入日誌條目的信息,以便它可以(希望!)得到補救。