Log4Net Implementation


App.config
·         Root(ErrorLogALL) Will Captures All messages of the Application
·         Log4netWindows.Program (ErrorLog) Will Captures only messages of that Namespace.class
·         Log4netWindows (ErrorLogNameSpace) Will Captures only messages of that Namespace

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>

  <log4net>
    <appender name="ErrorLogALL" type="log4net.Appender.RollingFileAppender">
      <file value="F:\\lognet\\testlogALL.log"/>
      <appendToFile value="true"/>
      <maximumFileSize value="10MB"/>
      <rollingStyle value="Size"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{dd MMM yyyy HH:mm:ss,fff} [%level] %logger - %message%newline"/>
      </layout>
      <filter type="log4net.Filter.LevelMatchFilter">
        <levelToMatch value="ERROR"/>
      </filter>
    </appender>
    <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
      <file value="F:\\lognet\\testlog.log"/>
      <appendToFile value="true"/>
      <maximumFileSize value="10MB"/>
      <rollingStyle value="Size"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{dd MMM yyyy HH:mm:ss,fff} [%level] %logger - %message%newline"/>
      </layout>
      <filter type="log4net.Filter.LevelMatchFilter">
        <levelToMatch value="ERROR"/>
      </filter>
    </appender>
    <appender name="ErrorLogNameSpace" type="log4net.Appender.RollingFileAppender">
      <file value="F:\\lognet\\testlogNameSpace.log"/>
      <appendToFile value="true"/>
      <maximumFileSize value="10MB"/>
      <rollingStyle value="Size"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date{dd MMM yyyy HH:mm:ss,fff} [%level] %logger - %message%newline"/>
      </layout>
      <filter type="log4net.Filter.LevelMatchFilter">
        <levelToMatch value="ERROR"/>
      </filter>
    </appender>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="ErrorLogALL"/>
    </root>
    <logger name="Log4netWindows.Program">
      <level value="DEBUG"/>
      <appender-ref ref="ErrorLog"/>
    </logger>
    <logger name="Log4netWindows">
      <level value="DEBUG"/>
      <appender-ref ref="ErrorLogNameSpace"/>
    </logger>
  </log4net>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>


Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using log4net;
using System.Reflection;

namespace Log4netWindows
{
    class Program
    {
        static void Main(string[] args)
        {
            ILog log;
            log4net.Config.XmlConfigurator.Configure();
            log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            log.Info("Test Program");

            Program_One obj = new Program_One();
            obj.Test_One();

            Log4netWindows_One.Program_Two obj_1 = new Log4netWindows_One.Program_Two();
            obj_1.Test_Two();

            Log4netWindows_One.Program_Three obj_2 = new Log4netWindows_One.Program_Three();
            obj_2.Test_Three();
        }
    }
    class Program_One
    {
        public void Test_One()
        {
            ILog log;
            log4net.Config.XmlConfigurator.Configure();
            log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            log.Info("Test Program_One");
        }
    }
}

namespace Log4netWindows_One
{
    public class Program_Two
    {
        public void Test_Two()
        {
            ILog log;
            log4net.Config.XmlConfigurator.Configure();
            log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            log.Info("Test Program_Two");
        }
    }
    public class Program_Three
    {
        public void Test_Three()
        {
            ILog log;
            log4net.Config.XmlConfigurator.Configure();
            log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
            log.Info("Test Program_Three");
        }
    }
}

You Can Download the Working Code of Log4Net Implementation From here.