无法获取log4net的在我的ASP.NET网站工作:( [英] Can't get Log4Net to work in my ASP.NET website :(

查看:75
本文介绍了无法获取log4net的在我的ASP.NET网站工作:(的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

很简单的问题 - >我似乎无法让我的ASP.NET应用程序从log4net的任何数据。我有一个简单的ASP.NET网站,该网站引用类库。在这个类库,我有叫记录一些行。

really simple question -> i can't seem to get any data from Log4Net in my ASP.NET application. I've got a simple ASP.NET website, which references a class library. In this class library, I have some lines that call the logger.

我想在我的Visual Studio中读取log4net的输出数据2008年调试的输出的窗口

I'm trying to read the log4net output data in my Visual Studio 2008 debugging Output window.

下面是我的code和我的配置...

Here's my code and my configuration...

//Class Library project
//File: Foo.cs
public class FooService
{
    private static readonly ILog log = LogManager.GetLogger(typeof(FooService));

    public FooService()
    {
        // NOTE: To play with my L4N settings, I'll call Debug once, then Info once.

        log.Info("Starting Constructor");

        // ... snip ...

        log.Debug("Leaving Constructor");
    }
}


// ASP.NET Website project
// File: global.asax
void Application_Start(object sender, EventArgs eventArgs) 
{
    log4net.Config.XmlConfigurator.Configure();
}

// File: Whatever.aspx.cs
// A delegate method (when a user clicks a button) creates the FooService() instance.

// File: web.config
<configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler" requirePermission="false" />

    // ....

</configSections>


<log4net>
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
        <mapping>
            <level value="ERROR" />
            <foreColor value="White" />
            <backColor value="Red, HighIntensity" />
        </mapping>
        <mapping>
            <level value="DEBUG" />
            <backColor value="Green" />
        </mapping>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
    </appender>

    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" />
    </appender>

    <appender name="OutputDebugStringAppender" type="log4net.Appender.OutputDebugStringAppender">
        <mapping>
            <level value="ERROR" />
            <foreColor value="White" />
            <backColor value="Red, HighIntensity" />
        </mapping>
        <mapping>
            <level value="DEBUG" />
            <backColor value="Blue" />
        </mapping>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
    </appender>


    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
        <file value="App_Data\logging\log-append.txt"/>
    </appender>

    <!-- Setup the root category, add the appenders and set the default level -->
    <root>
        <level value="ALL" />
        <appender-ref ref="OutputDebugStringAppender" />
        <appender-ref ref="ConsoleAppender" />
        <appender-ref ref="ColoredConsoleAppender" />
    </root>
    <!-- Specify the level for some specific categories -->
    <logger name="DotNetOpenAuth">
        <level value="ALL" />
    </logger>
</log4net>

任何帮助或建议干杯......

Cheers for any help or suggestions...

编辑:增加了RollingLogFileAppender

Added the RollingLogFileAppender.

推荐答案

我有这个同样的问题,我认为这是看错了web.config文件什么的。我终于从web.config中分离出来log4net.config,把一个路径,它\\的Inetpub \\日志\\ log4net.config,一切都很好。

I had this same problem and I think it was looking at the wrong web.config or something. I finally separated out log4net.config from web.config and put a path to it \inetpub\Logs\log4net.config and all is well.

UDPATED ON REQUEST:从稍微复杂一点的版本修改

UDPATED ON REQUEST: edited from a slightly more complicated version.

<?xml version="1.0" encoding="utf-8"?>
<log4net>
    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level (%logger:%line) - %message%newline" />
        </layout>
    </appender>\

    <root>
        <!--ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF-->
        <level value="ALL" />
        <appender-ref ref="TraceAppender" />
    </root>
</log4net>

和它在code配置如下:

And it is configured in code as follows:

        var logpath = WebConfigurationManager.AppSettings["LogConfigPath"] ?? @"\Inetpub\Logs\log4net.config";
        var finfo = new System.IO.FileInfo ( logpath );
        XmlConfigurator.Configure( finfo );

这篇关于无法获取log4net的在我的ASP.NET网站工作:(的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆