Очень часто я хочу исключить ведение журнала из определенного чат-регистратора до определенного уровня. К сожалению, первая из следующих правил является окончательным для всех уровней этого регистратора, так что второе правило (это просто мое правило по умолчанию) ничего не войти в него:NLog и окончательные правила
<logger name="ChattyLogger" maxlevel="Warn" writeTo="blackhole" final="true" />
<logger name="*" minlevel="Info" writeTo="default" />
Одним из возможных вариантов является использование фильтров Вместо этого:
<logger name="ChattyLogger" writeTo="blackhole">
<filters>
<when condition="level<=LogLevel.Warn" action="IgnoreFinal" />
</filters>
</logger>
<logger name="*" minlevel="Info" writeTo="default" />
Но синтаксис уродливый, особенно длина и необходимость избегать выражения условия.
Поскольку это кажется таким общим требованием, мне интересно, если я что-то упустил.
Я использую nlog под Silverlight, но я полагаю, что это не имеет значения.
Великий ответ, но, безусловно, первая строка ничего не делает, и может быть удален? –