2016-10-04 19 views
1

的ocurrence記錄只有一條規則我有一個NLog.config文件下列規則:NLOG - 從幾個基於錯誤

<rules> 
    <logger name="*" minlevel="Trace" writeTo="graylog" /> 
    <logger name="*" minlevel="Trace" writeTo="sqlserver" /> 
    <logger name="*" minlevel="Trace" writeTo="xml" /> 
    <logger name="*" minlevel="Trace" writeTo="console" /> 
</rules> 

我想我的應用程序嘗試登錄到第一個規則,如果它成功地使這個規則成爲最終的,而不是登錄到其他任何地方。如果發生錯誤(例如,Graylog服務器關閉),則會進入第二個規則,依此類推。

有什麼辦法可以做到這一點嗎?

回答

0

您可以使用FallbackGroup

<targets> 
    <target xsi:type="FallbackGroup" name="fallbackGroup" returnToFirstOnSuccess="true"> 
    <target name="graylog" ... /> 
    <target name="sqlserver" ... /> 
    <target name="xml" ... /> 
    <target name="console" ... /> 
    </target> 
</targets> 
<rules> 
    <logger name="*" minlevel="Trace" writeTo="fallbackGroup" /> 
</rules> 

這將嘗試的第一個目標(graylog),如果它拋出一個異常,下一個目標(sqlserver)等

參見the docs

+0

謝謝!它像一個魅力一樣工作! –