首页 > 技术文章 > C# 日志系统 log4net 配置及使用

cang12138 2017-03-31 15:55 原文

1、引用Dll

版本是:1.2.10.0,下载Dll

2、Web.config文件配置

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <!--log4net配置-->
  <log4net>
    <root>
      <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF
          比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录
          如果没有定义LEVEL的值,则缺省为DEBUG-->
      <level value="ERROR"/>
      <appender-ref ref="RollingFileAppender"/>
    </root>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--日志文件地址及名称(名称为日期,保证一天一个文件)-->
      <param name="File" type="log4net.Util.PatternString" value="logs\%date{yyyyMMdd}.log.txt" />
      <!--多线程时采用最小锁定-->
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
      <!--是否追加到文件,默认为true,通常无需设置-->
      <appendToFile value="true"/>
      <!--这种情况下MaxSizeRollBackups和maximumFileSize的节点设置才有意义-->
      <RollingStyle value="Size"/>
      <!--每天记录的日志文件个数,与maximumFileSize配合使用-->
      <MaxSizeRollBackups value="10"/>
      <!--每个日志文件的最大大小,可用的单位:KB|MB|GB,不要使用小数,否则会一直写入当前日志-->
      <maximumFileSize value="1MB"/>
      <!--日志格式-->
      <layout type="log4net.Layout.PatternLayout">
        <Header value="&#13;&#10;----------------------header--------------------------&#13;&#10;" />
        <!--conversionPattern:
            %m(message):输出的日志消息;
            %n(newline):换行;
            %d(datetime):输出当前语句运行的时刻;
            %r(runtime):输出程序从运行到执行到当前语句时消耗的毫秒数;
            %t(threadid):当前语句所在的线程ID ;
            %p(priority): 日志的当前日志级别;
            %c(class):当前日志对象的名称;
            %L:输出语句所在的行号;
            %F:输出语句所在的文件名; 
            %-10:表示最小长度为10,如果不够,则用空格填充;-->
        <conversionPattern value="%d [%t] %-5p %c [%x] - %m%n"/>
      </layout>
    </appender>
  </log4net>
</configuration>

3、Global.asax中Application_Start设置

//注册log4net(读取Log4Net配置信息)
log4net.Config.XmlConfigurator.Configure();

4、调用

public class HomeController : BaseController
{
        private log4net.ILog logger = log4net.LogManager.GetLogger(typeof(HomeController));

        /// <summary>
        /// 网站主页
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            //日志
            logger.Error("测试错误!" );
            return View();
        }
}

 

推荐阅读