C# Log4net错误-模式字符串不工作
我正在项目中使用C# Log4net错误-模式字符串不工作,c#,log4net,C#,Log4net,我正在项目中使用log4net创建日志组件。我已经创建了一个xml文件来配置log4net设置,包括追加器和记录器定义。我正在使用PatternString从appsetting.config文件中获取属性值。但是,当我构建并运行项目时,它会抛出以下错误: log4net:在记录器[Test]上未定义级别[%property{level}]时出错。 有人知道是什么引起的吗 XML: <?xml version="1.0" encoding="UTF-8" ?> <log4net
log4net
创建日志组件。我已经创建了一个xml文件来配置log4net
设置,包括追加器和记录器定义。我正在使用PatternString
从appsetting.config
文件中获取属性值。但是,当我构建并运行项目时,它会抛出以下错误:
log4net:在记录器[Test]上未定义级别[%property{level}]时出错。
有人知道是什么引起的吗
XML:
<?xml version="1.0" encoding="UTF-8" ?>
<log4net>
<logger name="Test">
<level type="log4net.Util.PatternString" value="%property{Level}" />
<appender-ref ref="JsonFileAppender" />
</logger>
</log4net>
appsetting.config:
<appSettings>
<add key="Level" value="ALL"/>
</appSettings>
如果有用,
log4net
版本为:版本:2.0.8此错误的原因是无法通过模式字符串配置记录器的级别
元素需要一个众所周知的值,例如ALL
,DEBUG
,INFO
,WARN
,ERROR
,
例如:
好问题
我从中学到了很多
在开始记录之前,请不要忘记调用此方法
log4net.Config.XmlConfigurator.Configure();
app.config是
如果需要应用模式,请使用
元素
如果您想使用“appSettings”中的某些值,
像这样使用,%appSetting{Environment}
logger = LogManager.GetLogger("Test");
Level level = // Parse from ConfigurationManager.AppSettings["Level"]
((Logger)logger.Logger).Level = level;
log4net.Config.XmlConfigurator.Configure();
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
</layout>
</appender>
<root>
<level value="%appSetting{Environment}" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
<appSettings>
<add key="Environment" value="INFO" />
<!-- this is optional flag.-->
<add key="log4net.Internal.Debug" value="True" />
</appSettings>
</configuration>