Click here to Skip to main content
15,867,308 members
Articles / Web Development / IIS
Article

Configure Log4Net for Desktop and Web Applications

Rate me:
Please Sign up or sign in to vote.
3.32/5 (20 votes)
15 Aug 2005CPOL1 min read 247.7K   4.2K   37   13
How to configure Log4Net for desktop and Web applications

Introduction

This article describes how to configure Log4Net to work with your desktop and Web applications. Even though this Web site contains everything you ever need to work with this Log4Net library, if you are new to .NET and this logging framework, and would like to quickly configure an environment so that you can start experiencing the framework, this article is worth going through.

Step 1: Compose the Configuration Information for Log4Net

Log4Net Framework uses the custom config handler to load in the configuration information. So to configure it, we can put the configuration in the App.Config for Desktop application and Web.Config for Web application. The following sections are examples of the same.

Desktop Application

Add the Log4Net configuration to the App.Config file. For more information about the configuration, refer to this page.

Sample App.Config File

XML
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, 
    log4net" />
</configSections>
<log4net debug="false">
<appender name="LogFileAppender" type="log4net.Appender.FileAppender,log4net" >
<param name="File" value="c:\\hnguyen\\download\\error-log.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n" />
</layout>
</appender>
<root>
<priority value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
<category name="testApp.LoggingExample"><priority value="ALL" /></category>
</log4net>
</configuration> 

Web Application

Add the Log4Net configuration information to your web.config file. For more information about the configuration, refer to this page.

Sample web.config

XML
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler"/>
</configSections>
<appSettings>
</appSettings>
<log4net debug="false">
<appender name="LogFileAppender" type="log4net.Appender.FileAppender,log4net">
<param name="File" value="C:\\temp\\test-web-log.txt"/>
<param name="AppendToFile" value="true"/>
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
</layout>
</appender>
<root>
<priority value="ALL"/>
<appender-ref ref="LogFileAppender"/>
</root>
<category name="my.category"><priority value="DEBUG"/></category>
</log4net>
<system.web>
…………..

Step 2: Load Configuration

Before we can log any message, we need to tell the Log4Net Framework to load its configuration. Do this by invoking the DOMConfigurator once in your application.

C#
//Load from App.Config file
log4net.Config.DOMConfigurator.Configure(); 

We can also load the configuration from different places or URLs.

C#
//Load from local file
log4net.Config.DOMConfigurator.Configure(new System.IO.FileInfo(@"<your config file>");

//Load from URL
WebRequest myWebRequest = WebRequest.Create("<Config File URL>");
WebResponse myWebResponse = myWebRequest.GetResponse();
log4net.Config.DOMConfigurator.Configure(myWebResponse.GetResponseStream());

Step 3: Create a Log Category

After loading the configuration, we need to create a log category before logging any message. Do this by using the LogManager class.

C#
private readonly ILog logger = LogManager.GetLogger("testApp.LoggingExample");

History

  • 16th August, 2005: Initial post

License

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


Written By
Web Developer
United States United States
Senior Software Engineer

Comments and Discussions

 
GeneralMy vote of 1 Pin
Arijit_Mukherjee19-Feb-14 22:31
Arijit_Mukherjee19-Feb-14 22:31 
GeneralMy vote of 2 Pin
pdelco9-Dec-09 8:50
pdelco9-Dec-09 8:50 
GeneralAnother good link for setting and implement log4net Pin
MD.Tanvir Anowar15-Nov-09 16:17
MD.Tanvir Anowar15-Nov-09 16:17 
GeneralThank you for the post. Pin
Cheon sang3-Aug-09 3:36
Cheon sang3-Aug-09 3:36 
GeneralLog4net for Web Application Pin
Manjunath Kotegowda25-Jun-09 19:42
Manjunath Kotegowda25-Jun-09 19:42 
QuestionWhat about silverlight/xaml? Pin
devvvy12-Feb-09 1:30
devvvy12-Feb-09 1:30 
GeneralThanks Pin
fun-e23-May-08 0:18
fun-e23-May-08 0:18 
GeneralThanks Hai! Pin
eggshelly11-Jul-07 21:50
eggshelly11-Jul-07 21:50 
General25 Information messages.... Pin
haiaw27-May-06 13:23
haiaw27-May-06 13:23 
QuestionRelease 2.0? Pin
wirthmaster8-Feb-06 2:29
wirthmaster8-Feb-06 2:29 
AnswerRe: Release 2.0? Pin
P.J. van de Sande3-Jun-06 7:46
P.J. van de Sande3-Jun-06 7:46 
GeneralHmmm Pin
Giles15-Aug-05 23:42
Giles15-Aug-05 23:42 
GeneralSome more effort wouldbe great Pin
Mark Focas15-Aug-05 20:43
Mark Focas15-Aug-05 20:43 

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

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