C# 警告级别不显示log4net
我有以下到log4net的XMLC# 警告级别不显示log4net,c#,xml,log4net,C#,Xml,Log4net,我有以下到log4net的XML <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <root> <level value="ALL" /> <
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="FileAppenderXml" />
</root>
<appender name="FileAppenderXml" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="logs\%date{yyyy}\%date{MM}\%date{yyyyMMdd}.xml"/>
<appendToFile value="true"/>
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.XmlLayoutSchemaLog4j">
<locationInfo value="true"/>
<conversionPattern value="%date [%thread] %-5level - %message%newline" />
</layout>
<param name="Encoding" value="utf-8" />
</appender>
</log4net>
可能是XML配置还是代码?所以问题似乎是当警告事件触发时,它显示为“INFO” 根据 在级别信息上记录时,实际使用的级别不是信息,而是
LoggerRepository.LevelMap[“INFO”]
的值。默认值为Info,但可以通过重新配置标高贴图来更改
看起来很奇怪。您是否查看了实际的XML文件,以查看是否存在
WARN
日志?是的,并且会显示除Warm之外的所有事件类型(级别)。我也觉得奇怪。你有LevelRangeFilter
吗?我不熟悉Yalv,所以我不确定你怎么知道只有WARN没有生成。不,我在XML中没有这个语句。Yalv只是一个查看器,当格式为XML时,它能够以更愉快、更舒适的方式管理来自log4net的信息。您可以在“我知道没有生成警告”中找到它,因为我正在触发触发每个log4net级别的事件,并且明确地说,该事件是生成的,但带有INFO标记,并且不是WARM。
switch (typeLog)
{
case elogType.infoType:
log.Info(currentMessage);
break;
case elogType.errorType:
log.Error(currentMessage);
break;
case elogType.debugType:
log.Debug(currentMessage);
break;
case elogType.warningType :
log.Warn(currentMessage);
break;
}