Click here to Skip to main content
Click here to Skip to main content

How to use log4net

, 14 Jul 2006 CPOL
Rate this:
Please Sign up or sign in to vote.
This article describes the basic steps to be followed for using Log4net in a web application.
Download source code - 103.9 Kb


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.


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
    Above statement provides the information about config file in which log4net configuration parameters are defined.

  • Step 3: Add below section in Web.Config file.
    	<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    <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" />
    		<level value="DEBUG" />
    		<appender-ref ref="RollingLogFileAppender" />

    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 

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

  • 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);
    private static readonly ILog log = LogManager.GetLogger(
  • 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);
    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.


    • 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
    Web Developer
    India India
    No Biography provided

    Comments and Discussions

    GeneralMy vote of 3 Pinmembermahi03079-Oct-14 4:20 
    GeneralMy vote of 5 Pinmemberharsha.bhuyan21-May-13 2:49 
    QuestionWhere is AssemblyInfo.cs Pinmemberariftk8-Jan-13 19:43 
    AnswerRe: Where is AssemblyInfo.cs PinmemberAvil Mascarenhas16-Oct-14 1:26 
    GeneralMy vote of 5 PinmemberKiran Kumar B10-Oct-12 21:20 
    QuestionRead the configuration PinmemberHaitham.Hussien17-Sep-12 3:15 
    QuestionLog4Net Pinmembersivakarthiki9-Sep-12 7:14 
    GeneralMy vote of 4 PinmemberMember 859976627-Aug-12 23:55 
    GeneralMy vote of 3 Pinmemberyusia112-Jan-12 2:59 
    Questiongood article Pinmemberajaytiwari12345630-Sep-11 2:16 
    GeneralMy vote of 2 Pinmemberjalalx24-Sep-11 1:36 
    GeneralMy vote of 4 PinmemberHerminio Tribaldos27-Jul-11 22:13 
    GeneralMy vote of 4 PinmemberRiteshPapneja20-Apr-11 23:03 
    GeneralNot working while executing the exe(not in debug mode) PinmemberHaroldVish27-Jan-11 20:08 
    GeneralMy vote of 3 PinmemberPravin Patil, Mumbai17-Jan-11 21:53 
    GeneralMy vote of 1 Pinmemberzeltera14-Oct-10 5:59 
    GeneralMy vote of 5 Pinmemberpritam hinger16-Sep-10 0:40 
    GeneralMy vote of 5 Pinmemberzippy198114-Sep-10 5:11 
    While not the most accurate or comprehensive howto on log4net, its allows a programmer to get it working quickly. They can then use more comprehensive references to fine tune it.
    GeneralLog4net in Windows service PinmemberJitendra Zaa7-Sep-10 22:08 
    GeneralNot working Pinmemberravileeladhar22-Jul-10 0:40 
    GeneralRe: Not working PinmemberSuman Kumar23-Jul-10 4:00 
    GeneralFurther tutorials PinmemberMember 41098946-Apr-10 7:30 
    QuestionHow to read and parse the pattern entry from a log file? Pinmembernareshpatel17-Feb-10 22:18 
    AnswerRe: How to read and parse the pattern entry from a log file? PinmemberSuman Kumar18-Feb-10 8:43 
    GeneralRe: How to read and parse the pattern entry from a log file? Pinmembernareshpatel18-Feb-10 11:33 
    GeneralAnother good link for setting and implement log4net PinmemberMD.Tanvir Anowar15-Nov-09 17:18 
    GeneralWeb.config slight change PinmemberJack Choy11-May-09 10:21 
    Questionlog4NET Problem insert into MS SQL Server PinmemberWhat0589-Mar-09 13:27 
    QuestionHow to use log4net in class library? PinmemberMember 221321220-Jan-09 21:59 
    GeneralTurn logging on and off PinmemberMember 385397110-Oct-08 0:26 
    AnswerRe: Turn logging on and off PinmemberSuman Kumar18-Oct-08 19:09 
    GeneralThank you PinmemberAlain VIZZINI27-Jul-08 21:44 
    GeneralRe: Thank you PinmemberSuman Kumar14-Sep-08 19:27 
    GeneralSetting header and footer in a log Pinmemberjason_X22-Jul-08 10:26 
    Generallog4net and SharePoint Pinmemberld52219-Jan-08 8:46 
    QuestionIt's not working in .net 2.0 Pinmembertodeti23-Oct-07 7:11 
    AnswerRe: It's not working in .net 2.0 PinmemberDadou00221-Nov-07 9:04 
    GeneralRe: It's not working in .net 2.0 Pinmembercse_king111-Apr-08 0:00 
    AnswerRe: It's not working in .net 2.0 PinmemberJaroslav Martsek8-Jul-08 23:47 
    Questionlog4net config PinmemberRavindra_sagar30-Sep-07 22:37 
    GeneralError PinmemberMalayil alex23-Aug-07 4:17 
    GeneralRe: Error PinmemberSuman Kumar5-Sep-07 19:17 
    GeneralHave you seen NLog? [modified] PinmemberJaroslaw Kowalski17-Jul-06 5:28 
    GeneralRe: Have you seen NLog? PinmemberSuman Kumar20-Jul-06 20:24 
    Generallog4net sample PinmemberRujith Anand16-Jul-06 22:34 
    GeneralRe: log4net sample PinmemberSuman Kumar16-Jul-06 22:52 
    AnswerRe: log4net sample PinmemberSuman Kumar17-Jul-06 8:09 
    GeneralWTF Pinmembermango_lier15-Jul-06 22:25 

    General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

    Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

    | Advertise | Privacy | Terms of Use | Mobile
    Web03 | 2.8.150326.1 | Last Updated 14 Jul 2006
    Article Copyright 2006 by Suman Kumar
    Everything else Copyright © CodeProject, 1999-2015
    Layout: fixed | fluid