asp.net log4net 使用教程

log4net 线上的教程已经很多,简单地方一句带过。

1.什么是 log4net.

  log4net 是log4j在Microsoft .NET平台的一个扩展版。作用:将日志信息输出,毕竟当系统发布后我们不可能在用IDE去调试程序,但是作为一般的程序员都有处理异常信息的能力。

2.安装

  安装的方式有两种

   (1)引用dll文件;

   (2)使用 nuget直接安装;

3.配置文件

  配置文件部分,配置明细就不说了(炒鸡明细详解,有兴趣可以看完:http://www.cnblogs.com/QingLang-Raymond/articles/5599884.html),这里重点说的是怎么在web.config 里面把 log4net 的配置项独立出来,一般的系统发布后为了降低耦合,配置文件基本都是单独分开处理。

    (1)安装或者引用成功后 新建一个单独的配置文件,命名 log4net.config ;

    (2)拷贝 配置文件信息 进log4net.config,这样就达到了独立配置文件的目的;

4.使用

  将以下的引用拷贝到你需要使用的文件下面,我这里对log4net的使用 用的是单独的一个类文件 log4help.cs ,所以拷贝到此文件的using里面即可,这里需要注意下ConfigFile = @"log4net.config" ,黄色部分是文件存放路径,如果你是放在文件夹里面请在前面写上ConfigFile = @"xxx/log4net.config".

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

using System;
using log4net;

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

    public class LogHelper
    {
        private ILog logger;

        public LogHelper(ILog log)
        {
            this.logger = log;
        }

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

        public void Info(object message, Exception e)
        {
            this.logger.Info(message, e);
        }

        public void Debug(object message)
        {
            this.logger.Debug(message);
        }

        public void Debug(object message, Exception e)
        {
            this.logger.Debug(message, e);
        }

        public void Warming(object message)
        {
            this.logger.Warn(message);
        }

        public void Warming(object message, Exception e)
        {
            this.logger.Warn(message, e);
        }

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

        public void Error(object message, Exception e)
        {
            this.logger.Error(message, e);
        }

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

        public void Fatal(object message, Exception e)
        {
            this.logger.Fatal(message, e);
        }
    }

    public class LogFactory
    {
        static LogFactory()
        {
        }

        public static LogHelper GetLogger(Type type)
        {
            return new LogHelper(LogManager.GetLogger(type));
        }

        public static LogHelper GetLogger(string str)
        {
            return new LogHelper(LogManager.GetLogger(str));
        }
    }
}
View Code

5.配置文件信息

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <!--日志记录组建配置-->
  <!--log4net 写log-->
  <log4net>
    <root>
      <level value="all" />
      <appender-ref ref="INFOAppender" />
      <appender-ref ref="DEBUGAppender" />
      <appender-ref ref="WARNAppender" />
      <appender-ref ref="ERRORAppender" />
      <appender-ref ref="FATALAppender" />
      <appender-ref ref="ColoredConsole" />
      <appender-ref ref="TraceAppender" />
    </root>
    <appender name="INFOAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs\\INFO\\" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.log'" />
      <staticLogFileName value="false"/>
      <maxSizeRollBackups value="100" />
      <maximumFileSize value="10MB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="INFO"/>
        <param name="LevelMax" value="INFO"/>
      </filter>
    </appender>
    <appender name="DEBUGAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs\\DEBUG\\" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.log'" />
      <staticLogFileName value="false"/>
      <maxSizeRollBackups value="100" />
      <maximumFileSize value="10MB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG"/>
        <param name="LevelMax" value="DEBUG"/>
      </filter>
    </appender>
    <appender name="WARNAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs\\WARN\\" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.log'" />
      <staticLogFileName value="false"/>
      <maxSizeRollBackups value="100" />
      <maximumFileSize value="10MB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="WARN"/>
        <param name="LevelMax" value="WARN"/>
      </filter>
    </appender>
    <appender name="ERRORAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs\\ERROR\\" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.log'" />
      <staticLogFileName value="false"/>
      <maxSizeRollBackups value="100" />
      <maximumFileSize value="10MB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="ERROR"/>
        <param name="LevelMax" value="ERROR"/>
      </filter>
    </appender>
    <appender name="FATALAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs\\FATAL\\" />
      <appendToFile value="true" />
      <rollingStyle value="Composite" />
      <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.log'" />
      <staticLogFileName value="false"/>
      <maxSizeRollBackups value="100" />
      <maximumFileSize value="10MB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="FATAL"/>
        <param name="LevelMax" value="FATAL"/>
      </filter>
    </appender>
    <!--调试模式,输出日志到控制台-->
    <appender name="ColoredConsole" type="log4net.Appender.ColoredConsoleAppender">
      <mapping>
        <level value="ERROR"/>
        <foreColor value="Red, HighIntensity"/>
        <!--<backColor value="Green" />-->
      </mapping>
      <mapping>
        <level value="DEBUG"/>
        <foreColor value="Yellow, HighIntensity"/>
        <backColor value="Green"/>
      </mapping>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
      <layout type="log4net.Layout.PatternLayout">
        <param name="conversionPattern" value="%newline*******************************************%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline*******************************************%newline" />
      </layout>
    </appender>
  </log4net>
</configuration>
View Code

 

 

====Bloger QQ:820412456===

=====转载请注明出处========

posted on 2016-06-20 10:41  晴朗_Raymond  阅读(236)  评论(0编辑  收藏  举报