zoukankan      html  css  js  c++  java
  • 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);

    多一分冷靜,少一分浮躁
  • 相关阅读:
    Ajax Bootstrap JSP .jsp JS .js DOM 概念
    CSS相关
    linux下python的tab自动补全功能:readline模块和ipython的安装
    python小技巧
    python中的值传递和引用传递(可变对象与不可变对象)也就是赋值的原理-python全部是引用传递
    Sql server 编写99乘法表
    消息对话框 MessageBoxButtons
    union与union all的用法给区别
    主要的窗体控件的概述
    窗体的常用方法和事件
  • 原文地址:https://www.cnblogs.com/AnnyGird-LiMing/p/4861025.html
Copyright © 2011-2022 走看看