• 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

  • 相关阅读:
    移动触摸事件之二
    移动touch事件之一
    Phonegap创建项目语法
    JS自定义去除字符串左右两边的指定字符
    video标签常用属性及说明
    html5开发之viewport使用
    页面事件总结
    缓存与预取
    修改JQM的默认配置属性
    JQM事件详解
  • 原文地址:https://www.cnblogs.com/johden2/p/4610991.html
Copyright © 2020-2023  润新知