• DNN学习笔记代码学习:LoggingProvider 荣


    using System;
    using System.Collections;

    namespace WebApplication1
    {
     /// <summary>
     /// 存储Log对象的类。
     /// 该类提供了对所包含的Log的操作,包括添加、删除、取得、清空等操作。该类应用了单件模式,为该类对象的扩展,提供了方便。
    ///他们把LogInfo对象存储在哪儿?存储在派生类的成员中,或其他地方
     /// </summary>
     public abstract class LoggingProvider
     {
      public enum ReturnType
      {
       LogInfoObjects,
       XML
      }

      private static LoggingProvider objProvider = null;

      public static LoggingProvider()
      {
       CreateProvider();
      }

      /// <summary>
      /// 根据配置信息创建这个LoggingProvider对象。
      /// </summary>
      private static void CreateProvider()
      {
       // 创建一个XMLLoggingProvider对象[配置信息中logging元素对应的值],并赋值给objProvider
      // 通过本方法,只能得到一个类型的派生类对象(即XMLLoggingProvider),为什么不直接用XMLLoggingProvider,而把本类删除呢?
       objProvider = (LoggingProvider)Reflection.CreateObject("logging");
      }

      /// <summary>
      /// 取得这个LoggingProvider对象。
      /// </summary>
      /// <returns></returns>
      public static LoggingProvider Instance()
      {
       // 单件模式,objProvider对象在派生类中确定。
       // 如何保证objProvider不为空?
       // 在第一次调用本之前,先调用构造函数CreateProvider。
       return objProvider;
      }

      public abstract bool SupportsEmailNotification();
      public abstract bool SupportsInternalViewer();
      public abstract bool LoggingIsEnabled(string LogType, int PortalID);
      public abstract bool SupportsSendToCoreTeam();
      public abstract bool SupportsSendViaEmail();

      public abstract void AddLog(LogInfo objLogInfo);
      public abstract void DeleteLog(LogInfo objLogInfo);
      public abstract void ClearLog();
      public abstract void PurgeLogBuffer();
      public abstract void SendLogNotifications();

    //  public abstract void AddLog(LogInfo logInfo);

      public abstract ArrayList GetLogTypeConfigInfo();

      public abstract object GetSingleLog(LogInfo logInfo, ReturnType objReturnType);
      public abstract LogInfoArray GetLog();
      public abstract LogInfoArray GetLog(string logType);
      public abstract LogInfoArray GetLog(int PortID);
      public abstract LogInfoArray GetLog(int PortID, string logType);
     }
    }

  • 相关阅读:
    程序猿也爱学英语(上),有图有真相
    New Year's resolution for 2016
    Got the Best Employee of the year 2015 Star Award
    AngularJs项目文件以及文件夹结构
    完成AngularJS with MVC 5, Web API 2项目
    两则新闻引发的思考
    关于招聘的最新信息
    架构师面试更新版
    2015新加坡总统府
    关于2014年的旅行
  • 原文地址:https://www.cnblogs.com/admin11/p/194111.html
Copyright © 2020-2023  润新知