2015-08-06 5 views
0

Я видел несколько примеров подавления журналов из определенного пространства имен, но все они, кажется, подавляют все , за исключением для этого пространства имен, а не наоборот (дайте мне расширенную регистрацию для это пространство имен и подавлять все остальное »и т. д.).Порядок заказа NLog

Может кто-нибудь объяснить, почему следующая конфигурация не подавляет регистраторы в пространстве имен My.Namespace? Цель состоит в том, чтобы гарантировать, что любой регистратор в пространстве имен My.Namespace регистрирует только за ошибки, а все остальное не изменяется.

<configSections> 
    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" /> 
</configSections> 

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <targets async="true"> 
    <target name="console" xsi:type="Console" layout="${level} ${message}" /> 
    </targets> 

    <rules> 
    <logger name="My.Namespace.*" minlevel="Error" writeTo="console" final="true" /> 
    <logger name="*" minlevel="Debug" writeTo="console" /> 
    </rules> 
</nlog> 

ответ

0

В то время как я думаю, было бы понятнее, чтобы иметь возможность установить правило одеяла для подавления пространства имен, что мне удалось получить эту работу со следующей конфигурацией:

<targets async="true"> 
    <target xsi:type="Console" name="console" layout="${longdate} ${level} ${message}" /> 
</targets> 

<rules> 
    <!-- Anything less or equal to DEBUG, don't write to anything (no target) --> 
    <logger name="My.Namespace.*" maxlevel="Debug" final="true" /> 

    <!-- Anything greater or equal to INFO, write to the console target --> 
    <logger name="My.Namespace.*" minlevel="Info" writeTo="console" final="true" /> 
    <logger name="*" minlevel="Debug" writeTo="console" /> 
</rules>