Asp.net MVC使用Log4net记录日志

1.创建一个新的MVC项目,并添加对log4net.2.0.3的引用,可以用NuGet直接添加.

2.修改配置文件对log4net配置参数

   首先在Web.Config的configSections节点增加以下代码

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

    然后configSections节点的外面增加以下配置

  <log4net debug="true">
    <root>
      <level value="ALL" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="logs/" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="10" />
      <param name="StaticLogFileName" value="false" />
      <!--日志文件格式-->
      <param name="DatePattern" value="yyyy-MM-dd.TXT"/>
      <!--我这里按照日期-->
      <param name="RollingStyle" value="Date" />


      <!--日志格式-->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
      </layout>
    </appender>

  </log4net>

 配置到这个地方就可以完成啦,日志会以yyyy-MM-dd.TXT存放在logs目录下

 

3.在程序中对其使用

首先需要在Startup.cs文件中增加如下代码

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

 然后是Global.asax.cs文件,添加多log4net的引用,然后在Application_Start中初始化log4net配置项

log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config")));

 到这来基本上就已经配置完了,下面说一下使用

        readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
 logger.Info("Log4net Ready!"); //写入日志

 

上面的这个代码执行完,应该可以在logs文件夹下出现一个以当前日期命名的TXT文件,里面记录了如下内容

INFO  2015-07-25 12:43:34,423   820ms HomeController         Index              - Log4net Ready!

 这个里面的内容是前面配置中指定的,具体的配置内容可以看下文档.

新手在配置这个的时候容易出问题,导致看不到log文件,不放直接copy然后再修改,这样应该方便一点.

另外有几个配置项值得说明的

1.DatePattern : 指定文件个格式,这来的后缀要大小,至于为什么要大写,自己猜...

2.AppendToFile :是否追加,不追加就覆盖

3.log4net/root/level:这个是日志等级,ALL是全部记录,还有INFO Error....谨慎使用,

你可能感兴趣的:(mvc,asp.net,log4net)