2016-10-04 1 views
1

У меня есть следующие правила на 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

Спасибо! Оно работало завораживающе! –

Смежные вопросы