log4net使用

1. Create a config file calls 'log4net.config', and put it in 'c:\log\'

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <!-- START Defining the sections -->
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1B44E1D426115821" />
    <!-- END Defining the sections -->
  </configSections>
  <log4net>
    
    <appender name="ServerLogFileAppenderInfo" type="log4net.Appender.RollingFileAppender">
      <file value="C:\abc\server-info.log" />
      <appendToFile value="true" />   
      <rollingStyle value="Date" />
      <datePattern value=".yyyyMMdd" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
      <securityContext type="log4net.Util.WindowsSecurityContext">  
        <credentials value="Process" />  
      </securityContext>  
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="DEBUG" />
        <levelMax value="WARN" />
      </filter>
    </appender>

    <appender name="ServerLogFileAppenderError" type="log4net.Appender.RollingFileAppender">
      <file value="C:\abc\server-error.log" />
      <appendToFile value="true" /> 
      <rollingStyle value="Date" />
      <datePattern value=".yyyyMMdd" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
      <securityContext type="log4net.Util.WindowsSecurityContext">  
        <credentials value="Process" />  
      </securityContext>  
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="ERROR" />
        <levelMax value="FATAL" />
      </filter>
    </appender>    
   
    <appender name="ApplicationLogFileAppenderInfo" type="log4net.Appender.RollingFileAppender">
      <file value="C:\abc\application-info.log"/>
      <appendToFile value="true" /> 
      <rollingStyle value="Date" />
      <datePattern value=".yyyyMMdd" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
      <securityContext type="log4net.Util.WindowsSecurityContext">  
        <credentials value="Process" />  
      </securityContext>  
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="DEBUG" />
        <levelMax value="WARN" />
      </filter>
    </appender>

    <appender name="ApplicationLogFileAppenderError" type="log4net.Appender.RollingFileAppender">
      <file value="C:\abc\application-error.log"/>
      <appendToFile value="true" /> 
      <rollingStyle value="Date" />
      <datePattern value=".yyyyMMdd" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
      <securityContext type="log4net.Util.WindowsSecurityContext">  
        <credentials value="Process" />  
      </securityContext>  
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="ERROR" />
        <levelMax value="FATAL" />
      </filter>
    </appender>

    <root>
      <level value="DEBUG"/>
      <appender-ref ref="ServerLogFileAppenderInfo" />
      <appender-ref ref="ServerLogFileAppenderError" />
    </root>

    <logger name="YourNameSpace" additivity="false">
      <level value="DEBUG" />
      <appender-ref ref="ApplicationLogFileAppenderInfo" />
      <appender-ref ref="ApplicationLogFileAppenderError" />
    </logger>
  
  </log4net>
  <!-- END configuration of log4net -->
</configuration>

2. Create a Class Library Project call 'MyLogging', add a reference for log4net.dll. Add a new Class calls 'Logger.cs'.

    public class Logger
    {
        private const string LOG4NET_CONFIG_FILE = "C:\\log\\log4net.config";
        private log4net.ILog logger;

        private Logger()
        {
            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(LOG4NET_CONFIG_FILE));
        }

        public Logger(string loggerName)
            : this()
        {
            logger = log4net.LogManager.GetLogger(loggerName);
        }

        public Logger(Type type)
            : this()
        {
            logger = log4net.LogManager.GetLogger(type);
        }

        #region ILog Members
        public void Debug(object message)
        {
            if (logger.IsDebugEnabled)
                logger.Debug(message);
        }

        public void Debug(object message, Exception ex)
        {
            if (logger.IsDebugEnabled)
                logger.Debug(message, ex);
        }

        public void Info(object message)
        {
            if (logger.IsInfoEnabled)
                logger.Info(message);
        }

        public void Info(object message, Exception ex)
        {
            if (logger.IsInfoEnabled)
                logger.Info(message);
        }

        public void Warn(object message)
        {
            if (logger.IsWarnEnabled)
                logger.Warn(message);
        }

        public void Warn(object message, Exception ex)
        {
            if (logger.IsWarnEnabled)
                logger.Warn(message, ex);
        }

        public void Error(object message)
        {
            if (logger.IsErrorEnabled)
                logger.Error(message);
        }

        public void Error(object message, Exception ex)
        {
            if (logger.IsErrorEnabled)
                logger.Error(message, ex);
        }

        public void Fatal(object message)
        {
            if (logger.IsFatalEnabled)
                logger.Fatal(message);
        }

        public void Fatal(object message, Exception ex)
        {
            if (logger.IsFatalEnabled)
                logger.Fatal(message, ex);
        }

        #endregion
    }
posted @ 2011-07-08 10:12  双眼皮的猪  阅读(855)  评论(0编辑  收藏  举报