谈谈log4net的使用

       日志是所有程序中都不可少的一部分,它能给调试和维护提供极大的帮助,从而极大提高开发和追踪bug的效率。为了让自己站在巨人的肩膀上,提高开发效率,log4net为实现日志提供便利。log4net的使用很方便,主要分为两部分:

       其中log4net的下载地址:http://logging.apache.org/log4net/download_log4net.cgi

      1. 在app.config中添加configsection

       在app.config中configuration节点中添加如下节点,这个节点主要起声明作用。其中,name是指将要配置的节点名称,type是指name节点将要转换的类型以及其所在的dll库。这里特别需要注意的是configSections节点必须是configuration节点的第一个子节点,否则会报异常。

        

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

       然后,再在configuration节点中加入如下log4net节点,这个节点就是log4net提供给用户来进行自定义配置,包括对log存储位置、文件名称格式、文件大小、记录的样式等。这个有兴趣的可以自行研究下,这里就不做介绍了。

     

<log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
       <file value="log\\" />
       <appendToFile value="true" />
       <rollingStyle value="Date" />
       <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
       <staticLogFileName value="false" />
       <param name="MaxSizeRollBackups" value="100" />
       <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:%-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n" />
        </layout>
        </appender>
     <root>
        <level value="DEBUG" />
        <!--文件形式记录日志-->
        <appender-ref ref="RollingLogFileAppender" />
     </root>
</log4net>



      2. 在代码中封装log4net提供的函数

       通常我们都是对log4net提供的函数进行封装,这样可以按需要定义自己需要打印的日志级别,并且可以提高代码的重用。首先我们可以新建一个LogHelper类,将log4net提供的函数封装成LogHelper类中的静态函数,这样方便使用。通常将日志分为异常、错误、Information和Debug(这里是我习惯的方式,读者可以按自己的喜好进行定义)。其中,需要特别注意代码中添加的程序集特性[assembly: log4net.Config.XmlConfigurator(Watch = true)],或者在程序初始化的地方加入log4net.Config.XmlConfigurator. Configure(),二者可以根据读者的编程习惯进行选择。它们的目的都是初始化log4net的xml节点配置信息。

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace EnvironmentSetupUI
{
    public class LogHelper
    {
        /// <summary>
        /// 输出异常日志到Log4Net
        /// </summary>
        /// <param name="t"></param>
        /// <param name="ex"></param>
        public static void WriteExceptionLog(Type t, Exception ex)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(t);
            log.Error("Exception", ex);
        }
        /// <summary>
        /// 输出错误日志到Log4Net
        /// </summary>
        /// <param name="t"></param>
        /// <param name="error"></param>
        public static void WriteErrorLog(Type t, string error)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(t);
            log.Error(error);
        }
        /// <summary>
        /// 输出information日志到Log4Net
        /// </summary>
        /// <param name="t"></param>
        /// <param name="info"></param>
        public static void WriteInfoLog(Type t, string info)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(t);
            log.Info(info);
        }
        /// <summary>
        /// 输出debug日志到Log4Net
        /// </summary>
        /// <param name="t"></param>
        /// <param name="debug"></param>
        public static void WriteDebugLog(Type t, string debug)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(t);
            log.Debug(debug);
        }
    }
}


    此外,这是我的首篇博客,本文的目的是为读者提供使用log4net的快速通道,希望对读者有帮助。

    本篇文章参考了柄棋先生的博客:http://www.cnblogs.com/wangsaiming/archive/2013/01/11/2856253.html,在此表示感谢!有兴趣的可以看看这篇博文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值