Je suis en train de configurer Log4Net uniquement par le code, mais quand je l'ai fait avec une configuration minimale, j'envahies par la journalisation des messages de NHibernate et l'interface fluide.log4net configuration pure code avec filtre C#
Alors, ce que je suis en train de faire est simple. Dites à Log4Net de ne montrer que les messages de mon cours individuel. Je jouai autour d'un peu, mais ne peut pas le comprendre ...
Quelqu'un peut-il aider, je pense que le code suivant illustre mon idée:
var filter = new log4net.Filter.LoggerMatchFilter();
filter.LoggerToMatch = typeof(DatabaseDirectory).ToString();
filter.AcceptOnMatch = false;
var x = new log4net.Appender.ConsoleAppender();
x.Layout = new log4net.Layout.SimpleLayout();
x.AddFilter(filter);
log4net.Config.BasicConfigurator.Configure(x);
Ok, merci pour votre aide, mais il doit être un problème ici. Mais je me rapproche. J'ai essayé la configuration XML, qui a beaucoup plus de documentation. Et j'ai réussi à atteindre le résultat souhaité en utilisant la configuration XML suivante. Il doit y avoir une mauvaise configuration dans la version "code pur" ci-dessus.
La configuration XML suivant fournit la sortie « correcte », ce qui est la même que la configuration dans le code ci-dessus. Quelqu'un voit la différence?
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="ConsoleAppender" />
</root>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="Examples.FirstProject.Entities.DatabaseDirectory"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%C.%M] %-5p %m%n" />
</layout>
</appender>
Initialement, votre configuration ressemble parfaitement bien. Avez-vous essayé de vous connecter sans NHibernate, seulement deux de vos propres enregistreurs et voir si l'un est accepté et l'autre refusé? De cette façon, vous pourriez au moins exclure NHibernate. –