Log4Net使用技巧

Log4Net使用技巧

1.Log4Net簡介

log4net庫是Apache log4j框架在Microsoft .NET平臺的實現,是一個幫助程序員將日誌信息輸出到各種目標(控制檯、文件、數據庫等)的工具。log4net是Apache軟件基金會Apache Logging Services工程的一部分。Apache日誌服務工程致力於爲程序調試和審計提供跨語言的日誌服務。

今天,我帶領大家在ASP.NET上使用Log4Net記錄日誌

2.Log4Net 下載

下載地址:

3.使用步驟

3.1 新建asp.net Web應用程序,創建三層代碼,添加所需類庫,如圖(1):


Common:全局公用類庫文件;
WordFilter:顯示層代碼庫;
WordFilter.BLL:BLL代碼層庫
WordFilter.DAL:DAL代碼類庫
WordFilter.Model:Model代碼類庫

3.2 在WebConfig文件中配置Log4Net;
代碼如下:
<?xml version="1.0" encoding="utf-8"?>

<!--
  有關如何配置 ASP.NET 應用程序的詳細消息,請訪問
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <log4net>
    <!-- 定義日誌記錄類型爲 滾動文件類型 -->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!-- 定義日誌文件的位置,此爲網站根目錄下的Log文件夾下的Moumoulog.txt文件 -->
      <file value="Log/Moumoulog.txt"/>
      <!-- 日誌 追加在日誌文件中 -->
      <appendToFile value="true"/>
      <!--日誌最大個數,都是最新的-->
      <maxSizeRollBackups value="10"/>
      <!--每個日誌文件的最大容量,超過該容量自動創建 新的日誌文件-->
      <maximumFileSize value="1024KB"/>
      <rollingStyle value="Size"/>
      <!--置爲true,當前最新日誌文件名永遠爲file節中的名字-->
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
      </layout>
    </appender>
    <root>
      <!--日誌記錄級別,默認是DEBUG-->
      <level value="DEBUG"/>
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
  </log4net>
  <appSettings>
    <!-- 連接字符串是否加密 -->
    <add key="ConStringEncrypt" value="false"/>
    <!-- 數據庫連接字符串,(如果採用加密方式,上面一項要設置爲true;加密工具,可在官方下載,
     如果使用明文這樣server=127.0.0.1;database=.....,上面則設置爲false。 -->
    <add key="ConnectionString" value="server=.\sqlexpress;database=WordFilter;uid=sa;pwd=hello"/>
  </appSettings>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />

        <httpRuntime requestValidationMode="2.0" />
    </system.web>
</configuration>

3.3 Common類庫添加log4net的引用:


3.4 Common類庫添加LogHelper.cs類文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Moumou.Enterprise.Common
{
    public class LogHelper
    {
        //log4net日誌專用
        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
        public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
//設置log4net獲取配置信息、從配置文件獲取
        public static void SetConfig()
        {
            log4net.Config.XmlConfigurator.Configure();
        }
<span style="white-space:pre">	</span>//<span style="font-family: Arial, Helvetica, sans-serif;">從文件獲取</span>
        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);
            }
        }
    }
}

3.5 在Global.asax文件的Application_Start方法啓動調用log4net

protected void Application_Start(object sender, EventArgs e) {
			LogHelper.SetConfig();
			LogHelper.WriteLog("系統啓動");
		}

3.6 在Application_Error記錄錯誤日誌
		protected void Application_Error(object sender, EventArgs e) {
			//在出現未處理的錯誤時運行的代碼
			Exception objExp = HttpContext.Current.Server.GetLastError();

			LogHelper.WriteLog("異常:" + Server.GetLastError().Message, objExp);
		}

記錄錯誤日誌如下:


發佈了35 篇原創文章 · 獲贊 4 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章