C# 让log4net使用配置数据的应用程序配置文件
我想在application.config文件中存储log4net配置数据。根据我对文件的理解,我做了以下工作:C# 让log4net使用配置数据的应用程序配置文件,c#,logging,log4net,C#,Logging,Log4net,我想在application.config文件中存储log4net配置数据。根据我对文件的理解,我做了以下工作: 添加对log4net.dll的引用 在AssemblyInfo.cs中添加以下行: [assembly: log4net.Config.XmlConfigurator(Watch = true)] 按如下方式初始化记录器: private static readonly ILog log = LogManager.GetLogger(typeof(frmWizard)); 我
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
private static readonly ILog log = LogManager.GetLogger(typeof(frmWizard));
但是,当我运行应用程序时,控制台上出现以下错误:
找不到名为[Consoleappender]的附加程序
如何让log4net从配置文件读取设置
谢谢 您是否尝试将
configsection
处理程序添加到app.config?e、 g
在configSections元素中为app.config添加一行
然后稍后添加log4Net部分,但将其委托给其他地方的实际log4Net配置文件
在应用程序代码中,当您创建日志时
private static ILog GetLog(string logName)
{
ILog log = LogManager.GetLogger(logName);
return log;
}
根据问题中显示的配置,只配置了一个appender,名为“EventLogAppender”。但是在根目录的配置中,作者引用了一个名为“ConsoleAppender”的appender,因此出现了错误消息。所有appender名称都必须反映在根目录部分。
在您的例子中,appender名称是EventLogAppender,但在配置log4net的
中。我完全支持@Charles Bretana的回答。但是,如果它不工作,请确保只有一个
元素,并且configSections
是根元素的第一个子元素:
configsections
必须是app.Config
配置后的第一个元素:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
</configSections>
<!-- add log 4 net config !-->
<!-- add others e.g. <startup> !-->
</configuration>
你的app.config中有什么代码?请注意:显示的app.config
设置显然是正确的,除了事件日志附加器
在
部分中命名,以及控制台Pender
在
部分中命名,两者不匹配。见@Konstantin的答案。另外,对于不熟悉log4net的其他人,请使用这个问题来学习如何使用它-注意,您可能需要一种不同于此处的appender类型-例如type=“log4net.appender.FileAppender,log4net”
(它附加到一个文件,而不是Windows事件日志)。另外,我还缺少[assembly:log4net.Config.xmlconfigulator(ConfigFile=“log4net.Config”,Watch=true)]
特别是ConfigFile=“log4net.Config”。这是键:是根元素的第一个子元素
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" />
</configSections>
<!-- add log 4 net config !-->
<!-- add others e.g. <startup> !-->
</configuration>