我甚至创建了一个测试控制台应用程序项目,看看log4Net是如何工作的,以及为什么它不能在我的真实世界应用程序上运行,但它甚至没有在控制台应用程序上编写。
我的app.config看起来像这样
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender,log4net">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="EventLogAppender" />
</root>
<logger name="EventViewerLogger">
<level value="ALL"/>
<appender-ref ref="EventLogAppender" />
</logger>
</log4net>
</configuration>
我的方法看起来像这样
log4net.Config.XmlConfigurator.Configure();
//log4net.Config.BasicConfigurator.Configure();
//log4net.Config.BasicConfigurator.Configure(new EventLogAppender { ApplicationName = "Log4NetTEST", LogName = "EchoEnterprise" });
var log = LogManager.GetLogger("EventViewerLogger");
//var log = LogManager.GetLogger(typeof(Class1));
var t = log.Logger.Repository.GetAppenders();
log.Info("Test INFO from Jamboree");
Console.WriteLine("Log4Net hopefuly worked!");
因此,当我尝试第一个(未注释)版本的“配置”时,它声明它无法在我的应用程序中找到log4net配置,但显然存在。它甚至告诉我它应该如何看。它说明了
log4net:ERROR Failed to find configuration section 'log4net' in the application's .config file. Check your .config file for the <log4net> and <configSections> elements. The configuration section should look like: <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
第二个版本(已注释)是默认版本,它会记录到控制台。我希望它能够转到EventViewer
第三个(注释)除了提供一个appender(由't'变量验证)之外什么都不做。 但是,这些都不会登录事件查看器 - 我在管理员模式下打开了VS(2012)和EventViewer。 - 我已经尝试了几乎所有注释/未注释代码的排列,并且仍然没有登录事件查看器。任何帮助都会被欣赏,因为我觉得它;在我的鼻子底下。提前谢谢。
ALSO(UPDATE) - 在AssemblyInfo.cs文件中添加了以下行
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
但仍未登录事件查看器