Skip to main content
Email Password   helpLost your password?
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

  • You must Sign In to use this message board.
     
     
    Per page   
     FirstPrevNext
    GeneralAnother good link for setting and implement log4net Pin
    MD.Tanvir Anowar
    17:18 15 Nov '09  
    GeneralWeb.config slight change Pin
    Jack Choy
    10:21 11 May '09  
    Questionlog4NET Problem insert into MS SQL Server Pin
    What058
    13:27 9 Mar '09  
    GeneralHow to use log4net in vb.net class library? Pin
    Member 2213212
    21:59 20 Jan '09  
    GeneralTurn logging on and off Pin
    Member 3853971
    0:26 10 Oct '08  
    AnswerRe: Turn logging on and off Pin
    Suman Kumar
    19:09 18 Oct '08  
    GeneralThank you Pin
    Alain VIZZINI
    21:44 27 Jul '08  
    GeneralRe: Thank you Pin
    Suman Kumar
    19:27 14 Sep '08  
    GeneralSetting header and footer in a log Pin
    jason_X
    10:26 22 Jul '08  
    Generallog4net and SharePoint Pin
    ld5221
    8:46 9 Jan '08  
    QuestionIt's not working in .net 2.0 Pin
    todeti
    7:11 23 Oct '07  
    AnswerRe: It's not working in .net 2.0 Pin
    Dadou002
    9:04 21 Nov '07  
    GeneralRe: It's not working in .net 2.0 Pin
    cse_king1
    0:00 11 Apr '08  
    AnswerRe: It's not working in .net 2.0 Pin
    Jaroslav Martsek
    23:47 8 Jul '08  
    Questionlog4net config Pin
    Ravindra_sagar
    22:37 30 Sep '07  
    GeneralError Pin
    Malayil alex
    4:17 23 Aug '07  
    GeneralRe: Error Pin
    Suman Kumar
    19:17 5 Sep '07  
    GeneralHave you seen NLog? [modified] Pin
    Jaroslaw Kowalski
    5:28 17 Jul '06  
    GeneralRe: Have you seen NLog? Pin
    Suman Kumar
    20:24 20 Jul '06  
    Generallog4net sample Pin
    Rujith Anand
    22:34 16 Jul '06  
    GeneralRe: log4net sample Pin
    Suman Kumar
    22:52 16 Jul '06  
    AnswerRe: log4net sample Pin
    Suman Kumar
    8:09 17 Jul '06  
    GeneralWTF Pin
    mango_lier
    22:25 15 Jul '06  


    Last Updated 14 Jul 2006 | Advertise | Privacy | Terms of Use | Copyright © CodeProject, 1999-2009