我正在编写一个简单的测试项目,用于尝试log4net,并且一开始就遇到了难题。无论我在配置文件中做什么,我的记录器都会以所有“IsXXXXEnabled”标志设置为false来初始化。这是我的非常简单的app.config:
<log4netgroup>
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<param name="LogName" value="Application" />
<param name="ApplicationName" value="HelloProgram" />
<threshold value="DEBUG"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger - %newline%message" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="EventLogAppender" />
</root>
<logger name="HelloLogger">
<level value="DEBUG" />
<appender-ref ref="EventLogAppender" />
</logger>
</log4net>
</log4netgroup>
以下是 Main 中的简单测试:
ILog Log = LogManager.GetLogger("HelloLogger");
if(Log.IsErrorEnabled)
Console.WriteLine("The logger is working!");
else
Console.WriteLine("Nope");
输出结果为 "Nope"。我尝试将阈值和级别的值切换为 "ALL",但是没有任何变化。这似乎很简单,我错过了什么使一切都能启用吗?
谢谢