2016-04-12 32 views
5

Mam skonfigurowane następujące rejestratory.Jak skonfigurować NLog tak, aby logował się tylko z określonego poziomu dla przestrzeni nazw rejestratora dla * wszystkich * celów

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <targets> 
    <target name="file" xsi:type="File" fileName="trace.log"/> 
    <target name="trace" xsi:type="OutputDebugString"/> 
    <target name="console" xsi:type="ColoredConsole" /> 
    </targets> 
    <rules> 
     <logger name="*" minlevel="Info" writeTo="file" /> 
     <logger name="*" minlevel="Info" writeTo="trace" /> 
     <logger name="*" minlevel="Info" writeTo="console" /> 
    </rules> 
</nlog> 

Chcę wszystko dla Component. * być zalogowany tylko z WARN i wyższy dla wszystkich rejestratorów. Z NHibernate jest to łatwe:

<logger name="NHibernate.SQL"> 
    <level value="OFF"/> 
</logger> 

Próbowałem dodać następujące:

<logger name="Component.*" minlevel="Warn" final="true" /> 

To nie działa.

Sposób rejestrowania tylko z określonego poziomu dla przestrzeni nazw rejestratora dla celów dla wszystkich celów.

Odpowiedz

3

Rozwiązaniem jest:

<logger name="Component.*" maxlevel="Info" final="true" /> 

W zasadzie powiedzieć, dla rejestratora (-ów) X Chcę pominąć wszystkie wpisy dziennika, które pasują do informacji lub niższy, gdyż nie posiada atrybut writeTo.

To jest udokumentowane tutaj:

https://github.com/nlog/NLog/wiki/Configuration-file

z próbką:

<logger name="Name.Space.*" minlevel="Debug" maxlevel="Error" final="true" /> 
+0

Wolę bardziej logiczne podejście log4net .... –