Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Simplest Implementation of log4net

0.00/5 (No votes)
21 Dec 2012 1  
Simplest implementation of log4net

Introduction

log4net is a powerful logging framework for .NET. However most people go for their own implementation for logging framework to handle logs. I personally feel it's may be due to lack of simple implementation of sample with log4net.dll.

Using the Code

Simplest implementation of log4net:

Step 1: Create a Central Logging Class

public static class Logger
{
    private static log4net.ILog Log { get; set; }

    static Logger()
    { 
          Log = log4net.LogManager.GetLogger(typeof(Logger));
    }

    public static void Error(object msg)
    {
        Log.Error(msg);
    }

    public static void Error(object msg, Exception ex)
    {
        Log.Error(msg, ex);
    }

    public static void Error(Exception ex)
    {
        Log.Error(ex.Message, ex);
    }

    public static void Info(object msg)
    {
        Log.Info(msg);
    }
}

Step 2: Update the AssemblyInfo.cs File in the Properties folder

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] 

Step 3: Create a config named log4net.config (as specified in step 2)

<?xml version="1.0" encoding="utf-8" ?>
<configuration> 
    <configSections>
        <section name="log4net" 
               type="log4net.Config.Log4NetConfigurationSectionHandler,
         log4net" />
    </configSections>

    <log4net>  
        <appender name="LogFileAppender" 
                        type="log4net.Appender.RollingFileAppender" >
            <param name="File" value="C:\Temp\Log\log.txt" />
            <param name="AppendToFile" value="true" />
            <rollingStyle value="Size" />
            <maxSizeRollBackups value="2" />
            <maximumFileSize value="10MB" />
            <staticLogFileName value="true" />
            <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
            <layout type="log4net.Layout.PatternLayout">
                  <param name="ConversionPattern" 
                       value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
                  <conversionPattern
                       value="%newline%newline%date %newline%logger 
                       [%property{NDC}] %newline>> %message%newline" />
            </layout>
        </appender>

        <root>
            <level value="ALL" /> 
            <appender-ref ref="LogFileAppender" />                     
        </root>
    </log4net> 
</configuration>

In this config file, have one appender only. Refer to Apache site for more config file samples.

Step 4: Done!!!!!

Step 5: Using it

Since all the logging methods exposed by Logger class are a static, we simply call them to do the logging, like:

try 
{ 
    return 5/0;
} 
catch (Exception ex)
{ 
    Logger.Error(ex);
}

Happy coding!!!

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here