相关疑难解决方法(0)

使用c#中的过滤器的log4net纯代码配置

我试图纯粹通过代码配置Log4Net,但是当我使用最小配置时,我被NHibernate和流畅的界面记录消息所淹没.

所以,我想做的很简单.告诉Log4Net只显示我的单个类的日志消息.我玩弄了一下,但无法搞清楚......

任何人都可以提供帮助,我认为以下代码说明了我的想法:

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);
Run Code Online (Sandbox Code Playgroud)

好的,谢谢你的帮助,但这里一定有问题.但我越来越近了.我尝试了XML配置,它有更多的文档.我使用以下XML配置设法实现了预期的结果.上面的"纯代码"版本中必定存在一些错误配置.

以下XML配置提供"正确"输出,这与上面代码中的配置不同.有谁看到了差异?

<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>
Run Code Online (Sandbox Code Playgroud)

c# configuration log4net

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

configuration ×1

log4net ×1