问题描述
我正在编写一个简单的测试项目来尝试使用log4net,但是我碰巧碰壁了.无论我在配置文件中做什么,都将使用所有设置为false的"IsXXXXEnabled"标志来初始化记录器.这是我非常简单的app.config:
I'm writing a simple test project to experiment with log4net and I've hit a wall right off the bat. No matter what I do in my config file, the my logger is initialized with all "IsXXXXEnabled" flags set to false. Here is my very simple 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中的琐碎测试:
Here is the trivial test in Main:
ILog Log = LogManager.GetLogger("HelloLogger");
if(Log.IsErrorEnabled)
Console.WriteLine("The logger is working!");
else
Console.WriteLine("Nope");
输出为否".我尝试将阈值和级别值切换为全部",但没有任何变化.这似乎很简单,我缺少什么来启用所有功能?谢谢
The output is "Nope". I tried switching the threshold and level values to "ALL", but nothing changed. This seems so simple, what am I missing to enable everything?Thanks
推荐答案
解决了!我不知道为什么在log4net手册中没有提到此调用,或者为什么我特别需要它,但是将这个程序集添加到我的项目中会启用所有日志级别:
Fixed it! I don't know why this call is not mentioned in the log4net manual or why I specifically need it, but adding this assembly to my project enabled all log levels:
[assembly:XmlConfigurator(Watch = true)]
在这里找到:如何配置log4net该log.IsDebugEnabled是真的吗?
这篇关于在log4net中启用日志级别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!