我最近創建了Windows服務。它忠實地做的一件事就是將任何錯誤記錄到應用程序日誌中。我有以下的代碼,這是否:正確使用應用程序配置文件中的<system.diagnostics>設置
Dim appLog = New System.Diagnostics.EventLog With {.Source = "MyService"}
appLog.WriteEntry(message, EventLogEntryType.Error, transactionID)
我也有我的app.config如下:
<system.diagnostics>
<sources>
<source name="MyService" switchName="DefaultSwitch">
<listeners>
<!--<add name="FileLog"/>-->
<add name="EventLog"/>
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information" />
</switches>
<sharedListeners>
<!--<add name="FileLog"
type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
initializeData="FileLogWriter"/>-->
<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="MyService"/>
</sharedListeners>
</system.diagnostics>
我希望上面我的代碼應該工作,即使沒有設置的源屬性事件日誌編程,因爲我已經在配置文件中定義了源。但是如果我刪除With {.Source = "MyService"}
,那麼我得到一個異常,它表示在調用WriteEntry方法之前應該設置Source屬性。那麼,配置XML中的東西的目的是什麼?