我已遵循此处给出的 log4net 建议。然后我通过在 Visual Studio 2010 中按“F5”来启动 MsTest 单元测试。当单元测试执行这两行时:
log.Warn("hello"); //this is a log4net logger.
System.Diagnostics.Debug.Write("there");
...Visual Studio 输出窗口仅显示“那里”一词。为什么“你好”不输出?
当我调试悬停在“日志”变量上时,它向我显示:
IsDebugEnabled = false
IsErrorEnabled = true
IsFatalEnabled = true
IsInfoEnabled = false
IsWarnEnabled = true
由此我得出结论,配置文件被正确读取。我的 log4net 配置如下所示:
<log4net>
<appender name="A1" type="log4net.Appender.OutputDebugStringAppender">
<!-- A1 uses PatternLayout -->
<layout type="log4net.Layout.PatternLayout">
<!--<conversionPattern value="%-4r [%t] %-5p %c %x - %m%n" />-->
<conversionPattern value="[MySite] %level %date{HH:mm:ss,fff} - %message%n" />
</layout>
</appender>
<root>
<level value="WARN" />
<appender-ref ref="A1" />
</root>
</log4net>
当我添加一个额外的 FileAppender 时,它创建的文件确实包含“hello”消息。为什么VS调试输出窗口没有显示“你好”的任何线索?