Log4Net簡單使用

1、 Log4net是什麼、優勢html

用來記錄程序日誌,優勢:1.提供應用程序運行時的精確環境,可供開發人員儘快找到應用程序中的Bug;2.日誌信息能夠輸出到不一樣的地方(數據庫,文件,郵箱等)。web

2、 Log4net的結構數據庫

log4net 有四種主要的組件,分別是Logger(記錄器), Repository(庫), Appender(附着器)以及 Layout(佈局).app

2、 Log4net的結構ide

第一步:首先下載log4net.dll並在項目中引用log4net.dll文件。佈局

第二步:在Web.config文件中進行添加configSections的節點spa

<configSections>
   
    <!--log4net配置-->
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>

第三步:添加log4net配置節點debug

 <!--log4net日誌配置-->
  <log4net>
    
    <logger name="logerror">
      <level value="ERROR" />
      <appender-ref ref="ErrorAppender" />
    </logger>
    <logger name="loginfo">
      <level value="INFO" />
      <appender-ref ref="InfoAppender" />
    </logger>
    <!--<logger name="logdebug">
      <level value="DEBUG">
        <appender-ref ref="DebugAppender" />
      </level>
    </logger>-->
    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="C:\ErrorLog.txt" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaximumFileSize" value="1MB" />
      <param name="RollingStyle" value="Size" />
      <param name="StaticLogFileName" value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
      </layout>
    </appender>
    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="C:\InfoLog.txt" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaximumFileSize" value="1MB" />
      <param name="RollingStyle" value="Size" />
      <param name="StaticLogFileName" value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
      </layout>
    </appender>
    <!--<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="C:\DebugLog.txt" />
      <param name="AppendToFile" value="true" />
      <param name="MaxSizeRollBackups" value="100" />
      <param name="MaximumFileSize" value="1MB" />
      <param name="RollingStyle" value="Size" />
      <param name="StaticLogFileName" value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
      </layout>
    </appender>-->
  </log4net>
webconfig Code

第四步:添加日記類logHelper調試

/// <summary>
    /// 使用LOG4NET記錄日誌的功能,在WEB.CONFIG裏要配置相應的節點
    /// </summary>
    public class LogHelper
    {
        //log4net日誌專用
        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
        public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
          
        public static void SetConfig()
        {
            log4net.Config.XmlConfigurator.Configure();
        }

        public static void SetConfig(FileInfo configFile)
        {
            log4net.Config.XmlConfigurator.Configure(configFile);
        }
        /// <summary>
        /// 普通的文件記錄日誌
        /// </summary>
        /// <param name="info"></param>
        public static void WriteLog(string info)
        {
            if (loginfo.IsInfoEnabled)
            {
                loginfo.Info(info);
            }
        }
        /// <summary>
        /// 錯誤日誌
        /// </summary>
        /// <param name="info"></param>
        /// <param name="se"></param>
        public static void WriteLog(string info, Exception se)
        {
            if (logerror.IsErrorEnabled)
            {
                logerror.Error(info, se);
            }
        }
LogHelper類 Code

第五步:添加Global.cs配置日誌

void Application_Start(object sender, EventArgs e) 

    {
        //在應用程序啓動時運行的代碼        
        //初始日誌的配置
        LogHelper.SetConfig();        
    }
Global Code
void Application_Error(object sender, EventArgs e)
        {
            // 在出現未處理的錯誤時運行的代碼              
            Exception ex = HttpContext.Current.Server.GetLastError();  
            Base_Teacher teacher = Session[UCSKey.SESSION_LoginInfo] as Base_Teacher;

            if (teacher != null)
            {
                //記錄錯誤日誌
                // LogHelper.WriteErrorLog("\r\n用戶ID:" + teacher.YHZH + "\r\n用戶名:" + teacher.XM + "\r\n客戶機IP:" + Request.UserHostAddress + "\r\n錯誤地址:" + Request.Url + "\r\n異常信息:" + Server.GetLastError().Message, ex);
                //記錄普通日誌
                 LogHelper.WriteInfoLog("\r\n用戶ID:" + teacher.YHZH + "\r\n用戶名:" + teacher.XM + "\r\n客戶機IP:" + Request.UserHostAddress + "\r\n錯誤地址:" + Request.Url + "\r\n錯誤時間:" + DateTime.Now);
                //記錄debug日誌
               // LogHelper.WriteDebugLog("\r\n用戶ID:" + teacher.YHZH + "\r\n用戶名:" + teacher.XM + "\r\n客戶機IP:" + Request.UserHostAddress + "\r\n錯誤地址:" + Request.Url + "\r\n異常信息:" + Server.GetLastError().Message, ex);
               
              
            }
        }
Global Code

第六步:頁面中使用

在try catch的catch中調用 loghelper類便可。

 

總結:

1.webconfig配置要靈活

2.不斷調試、多點耐心

 

 

tks:

代碼參考:http://www.cnblogs.com/ringwang/archive/2012/07/06/2579775.html

保存郵箱是、數據庫:http://www.poluoluo.com/jzxy/201311/249970.html

相關文章
相關標籤/搜索