似乎在 nugget 上有一个新版本的 glimps log4net:
Glimpse for log4net 1.1.0 (this version) 283 Sunday, February 7, 2016
您使用的是 log4net 1.2.11 [2.0.0] 吗?似乎 Glimpse.Log4Net 是针对该版本构建的。
接下来您可以启用 log4net 内部调试,这会显示任何内部异常:
在 log4net 中启用内部调试有两种不同的方法。下面列出了这些。首选方法是在应用程序的配置文件中指定 log4net.Internal.Debug 选项。
• 也可以通过在应用程序的配置文件中设置一个值来启用内部调试(不是 log4net 配置文件,除非 log4net 配置数据嵌入在应用程序的配置文件中)。log4net.Internal.Debug 应用程序设置必须设置为值 true。例如:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="log4net.Internal.Debug" value="true"/>
</appSettings>
</configuration>
此设置在启动时立即读取,并将导致发出所有内部调试消息。
• 要以编程方式启用log4net 的内部调试,您需要将log4net.Util.LogLog.InternalDebugging 属性设置为true。显然,设置得越早,产生的调试就越多。
内部调试消息被写入控制台和 System.Diagnostics.Trace 系统。如果应用程序没有控制台,那里记录的消息将会丢失。请注意,应用程序可以通过设置 System.Console.Out 来重定向控制台流。默认情况下,跟踪系统会将消息发送到附加的调试器(消息将显示在输出窗口中)。如果进程没有附加调试器,则将消息发送到系统调试器。http://www.sysinternals.com中的 DebugView 等实用程序可用于捕获这些消息。
由于 log4net 内部调试消息被写入 System.Diagnostics.Trace 系统,因此可以将这些消息重定向到本地文件。您可以通过将以下内容添加到应用程序的 .config 文件来定义跟踪侦听器:
<configuration>
...
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add
name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\tmp\log4net.txt" />
</listeners>
</trace>
</system.diagnostics>
...
</configuration>
确保运行您的应用程序的进程有权写入此文件。
log4net 常见问题