Log4.net使用配置


開發中經常使用到日志記錄功能,Log4.net可以將日志記錄到文件中,也可以記錄到數據庫中,使用非常方便,之前也一直在用,最近也參照了一下網上的資料,想簡單總結一下

本文重在通過通用日志類來使用Log4.net, 至於如何配置Log4.Net節點,網上的資料很多,這里沒有提到

 

1.首先創建一個Log4.Net的公共操作類

 /// <summary>
    /// log4net日志專用
    /// </summary>
    public class LogHelper
    {
        private static readonly log4net.ILog Instance = log4net.LogManager.GetLogger("loginfo");

        public static void SetConfig()
        {
            log4net.Config.XmlConfigurator.Configure();
        }

        public static void SetConfig(string filePath)
        {
            FileInfo configFile = new FileInfo(filePath);
            log4net.Config.XmlConfigurator.Configure(configFile);
        }

        public static void SetConfig(FileInfo configFile)
        {
            log4net.Config.XmlConfigurator.Configure(configFile);
        }

        /// <summary>
        /// 記錄普通文件記錄
        /// </summary>
        /// <param name="info"></param>
        public static void Info(string info)
        {
            if (Instance.IsInfoEnabled)
            {
                Instance.Info(info);
            }
        }

        /// <summary>
        ///記錄調試信息
        /// </summary>
        /// <param name="info"></param>
        /// <param name="se"></param>
        public static void Debug(string info)
        {
            if (Instance.IsErrorEnabled)
            {
                Instance.Debug(info);
            }
        }

        /// <summary>
        ///記錄警告信息
        /// </summary>
        /// <param name="info"></param>
        /// <param name="se"></param>
        public static void Warn(string info)
        {
            if (Instance.IsWarnEnabled)
            {
                Instance.Warn(info);
            }
        }

        /// <summary>
        /// 記錄錯誤日志
        /// </summary>
        /// <param name="info"></param>
        /// <param name="se"></param>
        public static void Error(string info, Exception se)
        {
            if (Instance.IsErrorEnabled)
            {
                Instance.Error(info, se);
            }
        }

        /// <summary>
        /// 記錄嚴重錯誤
        /// </summary>
        /// <param name="info"></param>
        /// <param name="se"></param>
        public static void Fatal(string info, Exception se)
        {
            if (Instance.IsFatalEnabled)
            {
                Instance.Fatal(info, se);
            }
        }


    }

 

 

2.注冊Log4.net 的配置信息,本人喜歡后面2中方式配置,這樣其他程序集(如Business程序集)需要記錄日志時,不需要再配置log4.net了,直接調用日志公共類即可

(1)可以在應用程序啟動時注冊Log4.net配置信息(如Global.asax中),不過其他程序集如果要記錄日志時,需要重新配置log4.net信息

  protected void Application_Start(object sender, EventArgs e)
        {
            //加載日志配置文件,只需要在程序啟動時加載一次
            string filePath = AppDomain.CurrentDomain.BaseDirectory + "Log4net.config";
            LogHelper.SetConfig(filePath);
        }

(2)在日志公共類LogHelper.cs所在程序集的AssemblyInfo.cs文件中進行注冊

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.config", Watch = true)]

(3)在日志公共類LogHelper.cs的命名空間上進行注冊

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4net.config", Watch = true)]
namespace LogUtility
{
    /// <summary>
    /// log4net日志專用
    /// </summary>
    public class LogHelper
    {
    ....
}

 

3. 記錄日志

   protected void Page_Load(object sender, EventArgs e)
        {
            #region 通過公共類調用

            //跨程序集調用寫入Log日志
            Services.TestService.TestLog();

            //記錄一般信息
            LogHelper.Info("info");
            //記錄調試信息
            LogHelper.Debug("debug");
            //記錄警告信息
            LogHelper.Warn("warn");

            //記錄錯誤日志
            LogHelper.Error("error", new Exception("發生了一個異常"));
            //記錄嚴重錯誤
            LogHelper.Fatal("fatal", new Exception("發生了一個致命錯誤"));


            #endregion 通過公共類調用


           Response.Write("日志記錄完畢。</br>");

        }

 

4. 參考資料,參考了下面一些內容

http://blog.csdn.net/zhoufoxcn/article/details/2220533 
http://blog.csdn.net/zhoufoxcn/article/details/6029021 
http://www.cnblogs.com/ringwang/archive/2012/07/06/2579775.html
http://www.cnblogs.com/zfanlong1314/p/3662679.html

 

5.本例的代碼(演示了在WinForm、WebForm上的使用配置)

(1)直接在應用啟動時注冊

 Log4NetSolution.zip

(2)在公共日志類中注冊

 Log4NetNewSolution.zip

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM