log4net--帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具

1. log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。

2. Log4net的结构如下:

log4net 有四种主要的组件,分别是Logger(记录器), Repository(库), Appender(附着器)以及Layout(布局).

3. 配置节点是由logger和appender组成的. logger说明要使用哪些appender. appender说明日志怎样存储,如写入系统日志,文本,数据库,邮件等

  appender节里有两个重要的子节点. filter负责过滤你想要得到的日志级别或包含特殊的字符串 layout负责日志输出的样式.

4.使用步驟:

 4.1 加入參考,即加載log4net.dll

 4.2 配置Config文件:

<configuration>

 <configSections>
        <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
  </configSections>

<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">
              <!--输出格式-->
        <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
        <conversionPattern value="%newline %n記錄時間:%date %n對應的窗體:%logger property: [%property{NDC}] - %n記錄信息:%message%newline %n" />
      </layout>
    </appender>

  <!--每条日志末尾的文字说明-->
    <root>
      <level value="ERROR" />
      <!--文件形式记录日志-->
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>

</configuration>

4.3 實體類

[assembly: log4net.Config.XmlConfigurator(Watch = true)]   //如何沒有這句,將看不到記錄日誌的文件夾

namespace HanKeDemo

{   

    class LogHelper   

  {        

     /// <summary>     

     /// 输出日志到Log4Net   

      /// </summary>    

     /// <param name="t"></param>   

      /// <param name="ex"></param>      

   #region static void WriteLog(Type t, Exception ex)

        public static void WriteLog(Type t, Exception ex)      

        {            

                 log4net.ILog log = log4net.LogManager.GetLogger(t);      

                 log.Error("Error", ex);      

       }

        #endregion

        /// <summary>  

       /// 输出日志到Log4Net       

      /// </summary>       

    /// <param name="t"></param>       

   /// <param name="msg"></param>    

     #region static void WriteLog(Type t, string msg)

        public static void WriteLog(Type t, string msg)    

     {            

         log4net.ILog log = log4net.LogManager.GetLogger(t);    

         log.Error(msg);    

     }

        #endregion

        /// <summary>      

    /// 操作系统的登录用户名    

     /// </summary>      

   /// <returns></returns>    

     public static string GetUserName()    

     {        

     try    {          

            return System.Environment.UserName.ToUpper();     

        }

            catch           

       {             

          return "unkonwn";    

         }

        }  

   }

}

4.4 調用實例

  LogHelper.WriteLog(typeof(MainForm), strMsg);

多一分冷靜,少一分浮躁
原文地址:https://www.cnblogs.com/AnnyGird-LiMing/p/4861025.html