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

 

posted @ 2015-06-30 16:59  johden2  阅读(3925)  评论(5编辑  收藏  举报