log4net 小记

突然想到想测试一下log4net,结果折腾了两天,才弄出来.....记录下来以备以后查看

背景:vs2013 mvc项目中想体验下log4net的功能(主要是文件记录)

翻看了log4net的相关资料,才发现其实它是有很多功能的,可以把日志记录到一个文本,或是按日期,大小分多个文本记录,还可以记录到数据库,输出到控制台.....等等,这些内容有很多,就不说了,主要说要我自己的碰到的坑。

这里有详细的直接在mvc 项目文件中集成使用log4net的介绍,我是觉得好麻烦啊,和以前在vs2010 上弄的完全麻烦多了(这里没有考虑把log4net 和 Common.logging 一起使用,一起使用时配置就不用那么麻烦了)

我主要是要提出来作为一个模块来配置,新建一个类库,在NuGet里面引用log4net

技术分享

新建一个LogHelper 类

技术分享
 1  public class LogHelper
 2     {
 3 
 4         public static void WriteLog(Type t, Exception ex)
 5         {
 6             log4net.ILog logger = log4net.LogManager.GetLogger(t);
 7             logger.Error("Error", ex);
 8         }
 9 
10 
11         public static void WriteLog(Type t, string msg)
12         {
13             log4net.ILog log = log4net.LogManager.GetLogger(t);
14             log.Error(msg);
15             log.Debug(msg);
16             log.Info(msg);
17             log.Warn(msg);
18         }
19     }
View Code

mvc项目 引用该类库,然后添加log4net的配置。

配置可以分开来写,web.config里面一部分和自定义的xxx.config文件一部分;也可以一起全部写在web.config里面

不管怎么写配置文件,web.config里面的<configSections>节点里面一定要添加log4net,这里展示的是把<log4net>节点写在web.config里面

<log4net>
    <!--错误日志配置-->
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="D:\\xxxx\\LogError\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="-1" />
      <param name="MaxFileSize" value="10240" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyy-MM-dd.‘log‘" />
      <param name="RollingStyle" value="Date" />
      <param name="BufferSize" value="1" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异 常 类:%c [%x] %n%m %n " />
      </layout>
    </appender>

    <!--信息日志配置-->
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="D:\\xxxx\\Log\\LogInfo\\" />
      <param name="AppendToFile" value="true" />
      <param name="MaxFileSize" value="10240" />
      <param name="MaxSizeRollBackups" value="-1" />
      <param name="StaticLogFileName" value="false" />
      <param name="DatePattern" value="yyyy-MM-dd.‘log‘" />
      <param name="RollingStyle" value="Date" />
      <param name="BufferSize" value="100" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%n日志时间:%d [%t] %n日志级别:%-5p %n日 志 类:%c [%x] %n%m %n" />
      </layout>
    </appender>
</log4net>

 

还可以单独把<log4net>节点里的内容提取出来放到自定义的xxx.config 文件中

技术分享

光这样还是不行的,有个注意的地方

技术分享

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。