Glimpse.Log4Net多层

时间:2016-03-09 08:03:50

标签: model-view-controller logging log4net glimpse multi-layer

我不知道如何在我的解决方案的其他项目中看到log4net日志。 例如: 解    项目1(业务)    Project2(DAL)    项目...    ProjectWeb(这里安装了glimpse& glimpse.log4net)

当我在项目1&中写入日志时,只能看到项目3中的日志。仍然打开了2个或更多的一瞥,但是没有看到日志。

有什么解决方案吗?我尝试了很多来配置web.config,但没有办法从其他项目中捕获日志,其中glimpse&没有安装glimpse.log4net。

1 个答案:

答案 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>

确保运行应用程序的进程有权写入此文件。

log4net FAQ