Je voudrais créer un appendeur qui ne se connecte que pour un niveau particulier et uniquement pour un enregistreur particulier. De ce que je vois et basé sur Ce tutoriel , les filtres sont ordiques ensemble. Comment puis-je et les filtres log4net ensemble? Voici un exemple de ce que je fais:
3 Réponses :
Je viens de trouver la solution de contournement suivante qui semble faire l'affaire. Premièrement, j'ai supprimé le filtre Loggeromatchs de l'appendeur. Ensuite, j'ai modifié les paramètres de l'enregistreur comme tel: p> car je n'ai qu'un seul filtre ma logique de filtre va bien. La section Logger pointe uniquement sur cet appendeur uniquement pour mon enregistreur choisi, mais tous les autres annexiers prennent également l'événement car ils sont spécifiés à la racine. Cela fonctionne, mais cela n'explique pas comment et les filtres ensemble dans l'appendeur. J'aimerais toujours savoir. P> h2>
Vous pouvez écrire une personnalisée et une personnalisation, ce qui est assez facile. Vous pouvez utiliser le code posté ici - https://stackoverflow.com/a/8859037/984438
Utilisation Soyez comme: p>
Ne sonne pas trop mal, mais je suis surpris que cette fonctionnalité ne soit pas intégrée à Log4Net
Vous pouvez utiliser ForwardingAppender (voir Exemples de configuration ) et mettre un filtrer là-bas et l'autre dans votre appendend cible (ou les chaînerez-les à volonté).
<appender name="FilterOnlyInfo" type="log4net.Appender.ForwardingAppender"> <!--log only INFO level--> <filter type="log4net.Filter.LevelMatchFilter"> <levelToMatch value="INFO" /> </filter> <appender-ref ref="FinalAppender" /> </appender> <appender name="FinalAppender"> <!--log only UserController logger--> <filter type="log4net.Filter.LoggerMatchFilter"> <loggerToMatch value="MyLogger" /> </filter> </appender>
Dupliqué possible de filtres log4net "ou"