我不知道如何在我的解决方案的其他项目中看到log4net日志。 例如: 解 项目1(业务) Project2(DAL) 项目... ProjectWeb(这里安装了glimpse& glimpse.log4net)
当我在项目1&中写入日志时,只能看到项目3中的日志。仍然打开了2个或更多的一瞥,但是没有看到日志。
有什么解决方案吗?我尝试了很多来配置web.config,但没有办法从其他项目中捕获日志,其中glimpse&没有安装glimpse.log4net。
答案 0 :(得分:0)
似乎在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来重定向控制台流。 Trace系统默认将消息发送到附加的调试器(消息将出现在输出窗口中)。如果进程没有附加调试器,则将消息发送到系统调试器。可以使用来自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>
确保运行应用程序的进程有权写入此文件。