5,699,997 members and growing! (19,487 online)
Email Password   helpLost your password?
Web Development » ASP.NET » General     Beginner License: The Code Project Open License (CPOL)

How to use log4net

By Suman Kumar

This article describes the basic steps to be followed for using Log4net in a web application.
C#, Windows, .NET, Visual Studio, ASP.NET, Dev

Posted: 14 Jul 2006
Updated: 14 Jul 2006
Views: 60,067
Bookmarked: 46 times
Announcements
Loading...



Search    
Advanced Search
Sitemap
24 votes for this Article.
Popularity: 4.84 Rating: 3.51 out of 5
3 votes, 12.5%
1
2 votes, 8.3%
2
3 votes, 12.5%
3
3 votes, 12.5%
4
13 votes, 54.2%
5
Note: This is an unedited contribution. If this article is inappropriate, needs attention or copies someone else's work without reference then please Report This Article
Download source code - 103.9 Kb

Introduction

This article describes the basic steps to be followed for using Log4net in a web application. Log4net is an open source library that allows .NET applications to log statements to a variety of targets.

Background

This article assume you have basic working knowledge of C#, and ASP.NET programming.

Using the code

Log4net is very simple to use yet powerful logging option. This article describes log4net usage in a web application in six easy steps.

  • Step 1: Get the latest version of log4net library and add reference of it in your project.

  • Step 2: Add below line in your AssemblyInfo.cs file.
    [assembly: log4net.Config.XmlConfigurator(ConfigFile="Web.config", Watch=true)]   //For log4net 1.2.10.0
    Above statement provides the information about config file in which log4net configuration parameters are defined.

  • Step 3: Add below section in Web.Config file.
    <configSections>
    	<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>
    	
    <log4net debug="true">
    	<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    		<file value="C:\\TestProj\\TestLog.txt" />
    		<appendToFile value="true" />
    		<rollingStyle value="Size" />
    		<maxSizeRollBackups value="10" />
    		<maximumFileSize value="10MB" />
    		<staticLogFileName value="true" />
    		<layout type="log4net.Layout.PatternLayout">
    			<conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
    		</layout>
    	</appender>
    	
    	<root>
    		<level value="DEBUG" />
    		<appender-ref ref="RollingLogFileAppender" />
    	</root>
    </log4net>
    

    Above section defines the configuration parameters to be used for logging.

    RollingLogFileAppender describes the appender to be used for logging. This means that the log should be written in a file, which will rollover when full. There are several other appender available and more than one appender can be attached to a logger.

    The layout is responsible for formatting the logging request, whereas an appender takes care of sending the formatted output to its destination. Layout used above would format the output as below:
    2006-07-14 20:26:04,033 [1736] ERROR Utility [PayStub] - Could not find a part of the path 
    "c:\inetpub\wwwroot\TestProj\Template\PayStub.xml"

  • Step 4: If you want log4net to add its own diagnostics messages then add below lines in web.config file.
    <appSettings>
        <add key="log4net.Internal.Debug" value="true" />
    </appSettings>
    Add below lines after system.web section:
    <system.diagnostics>
        <trace autoflush="true">
            <listeners>
                <add name="textWriterTraceListener" 
                   type="System.Diagnostics.TextWriterTraceListener" 
                   initializeData="C:\\TestProj\\TestProjlog4net.txt" />
            </listeners>
        </trace>
    </system.diagnostics>

  • Step 5: Now follow below steps in your code-behind.

    a. Add namespace

    using log4net;

    b. Add below declarations within class definition

    private static readonly ILog log = LogManager.GetLogger(typeof(TestPage1).Name);
    OR
    private static readonly ILog log = LogManager.GetLogger(
      System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
  • Step 6: Now you are ready for logging. Use below statements to log your messages in log file:
    if (log.IsErrorEnabled)
    {
        log.Error("Page Load failed : " + ex.Message);
    }
    OR
    if (log.IsDebugEnabled)
    {
        log.Debug("Application loaded successfully.");
    }
    We have just scratched the surface of log4net. There are several other good features available in log4net and it can be used to collect vital information for several purposes. Happy Programming.

    History

    • 07/14/2006 - Article submitted.
    • 07/19/2006 - Added Sample Project & updated the article.
  • License

    This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    About the Author

    Suman Kumar



    Occupation: Web Developer
    Location: India India

    Other popular ASP.NET articles:

    Article Top
    Sign Up to vote for this article
    You must Sign In to use this message board.
    FAQ FAQ Noise ToleranceSearch Search Messages 
     Layout  Per page   
     Msgs 1 to 19 of 19 (Total in Forum: 19) (Refresh)FirstPrevNext
    GeneralTurn logging on and offmemberMember 38539710:26 10 Oct '08  
    AnswerRe: Turn logging on and offmemberSuman Kumar19:09 18 Oct '08  
    GeneralThank youmemberAlain VIZZINI21:44 27 Jul '08  
    GeneralRe: Thank youmemberSuman Kumar19:27 14 Sep '08  
    GeneralSetting header and footer in a logmemberjason_X10:26 22 Jul '08  
    Generallog4net and SharePointmemberld52218:46 9 Jan '08  
    QuestionIt's not working in .net 2.0membertodeti7:11 23 Oct '07  
    AnswerRe: It's not working in .net 2.0memberDadou0029:04 21 Nov '07  
    GeneralRe: It's not working in .net 2.0membercse_king10:00 11 Apr '08  
    AnswerRe: It's not working in .net 2.0memberJaroslav Martsek23:47 8 Jul '08  
    Questionlog4net configmemberRavindra_sagar22:37 30 Sep '07  
    GeneralErrormemberMalayil alex4:17 23 Aug '07  
    GeneralRe: ErrormemberSuman Kumar19:17 5 Sep '07  
    GeneralHave you seen NLog? [modified]memberJaroslaw Kowalski5:28 17 Jul '06  
    GeneralRe: Have you seen NLog?memberSuman Kumar20:24 20 Jul '06  
    Generallog4net samplememberRujith Anand22:34 16 Jul '06  
    GeneralRe: log4net samplememberSuman Kumar22:52 16 Jul '06  
    AnswerRe: log4net samplememberSuman Kumar8:09 17 Jul '06  
    GeneralWTFmembermango_lier22:25 15 Jul '06  

    General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

    PermaLink | Privacy | Terms of Use
    Last Updated: 14 Jul 2006
    Editor:
    Copyright 2006 by Suman Kumar
    Everything else Copyright © CodeProject, 1999-2008
    Web08 | Advertise on the Code Project