Bre*_*ias 3 c# log4net mstest visual-studio
我遵循了这里给出的log4net建议.然后我通过在Visual Studio 2010中点击'F5'来启动MsTest单元测试.当单元测试执行这两行时:
log.Warn("hello"); //this is a log4net logger.
System.Diagnostics.Debug.Write("there");
Run Code Online (Sandbox Code Playgroud)
... Visual Studio输出窗口仅显示"那里"一词.为什么"你好"不输出?
当我调试悬停在'log'变量上时,它显示我:
IsDebugEnabled = false
IsErrorEnabled = true
IsFatalEnabled = true
IsInfoEnabled = false
IsWarnEnabled = true
Run Code Online (Sandbox Code Playgroud)
由此我得出结论,正在正确读取配置文件.我的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>
Run Code Online (Sandbox Code Playgroud)
当我添加一个额外的FileAppender时,它创建的文件确实包含"hello"消息.任何线索为什么VS调试输出窗口没有显示"你好"?
尝试使用DebugAppender而不是OutputDebugStringAppender.
DebugAppender将最终作为调用,System.Diagnostics.Debug.Write而OutputDebugStringAppender正在调用非托管代码,Visual Studio将不会捕获它(至少在默认情况下不是这样,即使只是在调试时,这意味着它不适用于您的情况).
DebugAppender的输出也可以使用链接文章中提到的DebugView捕获,所以我想不出他正在使用OutputDebugStringAppender的任何原因.
| 归档时间: |
|
| 查看次数: |
2269 次 |
| 最近记录: |