我希望能够在我的application.config文件中存储log4net配置数据。根据我对文档的理解,我按照以下步骤进行操作:
添加对log4net.dll的引用
在AssemblyInfo.cs中添加以下行:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
按以下方式初始化记录器:
private static readonly ILog log = LogManager.GetLogger(typeof(frmWizard));
我在我的app.config中有如下代码:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
然而,当我运行该应用程序时,在控制台上出现以下错误信息:
找不到名为[Consoleappender]的appender。
我该如何让log4net从配置文件中读取设置?
谢谢!
app.config
设置似乎是正确的,除了<appender>
部分中的EventLogAppender
和<root><appender-ref>
部分中的ConsoleAppender
名称不匹配。请参阅@Konstantin的答案。此外,对于那些不熟悉log4net并使用此问题学习如何使用它的人们,注意你可能需要一个不同类型的appender - 例如type="log4net.Appender.FileAppender,log4net"
(将日志追加到文件,而不是Windows事件日志)。 - Dan Nissenbaum