日志根名称相似的log4net记录器层次结构
|
我在这里找到错误了吗,或者我在此配置上做错了什么?
<appender name=\"ConsoleAppender\" type=\"log4net.Appender.ConsoleAppender\">
<layout type=\"log4net.Layout.PatternLayout\">
<conversionPattern value=\"%message%newline\" />
</layout>
</appender>
<logger name=\"MyApp.Common\">
<level value=\"WARN\" />
<appender-ref ref=\"ConsoleAppender\" />
</logger>
<logger name=\"MyApp.Common.Namespace.SomeGenericClass`1\">
<level value=\"INFO\" />
<appender-ref ref=\"ConsoleAppender\" />
</logger>
假设我已经按照标准的“ ... DeclaringType \”命名方案命名了记录器,那么我的期望是,只要是WARN,MyApp.Common命名空间下的所有内容都会记录到控制台中或更高。如果它的INFO或更高版本,SomeGenericClass`1中的所有内容都将被记录(如果由于WARN记录器而达到WARN或更高,则两次记录)。
发生的情况是,登录到INFO中的SomeGenericClass`1中的所有内容都将通过管道传输到控制台两次,而不是预期的一次。如果删除更特定的记录器,则不会记录任何内容;如果删除较不特定的记录器,则仅记录一次,两者均符合预期。另外,在配置文件中反转记录器的顺序没有任何作用(正如我所期望的那样,因为我认为顺序无关紧要)。
我在这里找到错误了吗,还是在层次结构的工作方式中缺少重要的东西?
没有找到相关结果
已邀请:
2 个回复
森含械
请注意,“其他所有内容”都在另一个命名空间中,因此它不会被转移到OtherNamespace记录器中,如果存在某种名称匹配的话,它可能会存在。还要注意,由于一切都是从root继承的,所以如果我将root引用的附加程序的日志记录级别更改为WARN,那么我也将获得OtherNamespace日志。我要做的就是让更详细的日志记录转至其他文件。
伞腹
无需再次引用该追加程序,除非您将加性设置为false,否则它将自动继承。