示例#1
0
        public static List<ILogEmitter> Create()
        {
            if (s_Emitters == null)
            {
                lock (s_SyncObj)
                {
                    if (s_Emitters == null)
                    {
                        LogSetting s = LogSection.GetSetting();
                        List<ILogEmitter> list = new List<ILogEmitter>();

                        if (s.Emitters != null)
                        {
                            s.Emitters.ForEach(p =>
                            {
                                ILogEmitter e;
                                switch (p.Type)
                                {
                                    case "eventLog":
                                        e = new EventLogEmitter();
                                        break;
                                    case "text":
                                        e = new TextEmitter();
                                        break;
                                    case "soap":
                                        e = new SoapEmitter();
                                        break;
                                    case "restful":
                                        e = new RestfulEmitter();
                                        break;
                                    case "sqlDb":
                                        e = new SqlDbEmitter();
                                        break;
                                    case "queue":
                                        e = new QueueEmitter();
                                        break;
                                    default:
                                        Type type = Type.GetType(p.Type, true);
                                        e = (ILogEmitter)Activator.CreateInstance(type);
                                        break;
                                }
                                e.Init(p.Parameters);
                                list.Add(e);
                            });
                        }
                      
                        s_Emitters = list;
                    }
                }
            }
            return s_Emitters;
        }
示例#2
0
 public static LogSetting GetSetting()
 {
     if (s_HasInit == false)
     {
         lock (s_SyncObj)
         {
             if (s_HasInit == false)
             {
                 s_LogSetting = ConfigurationManager.GetSection("log") as LogSetting;
                 s_HasInit    = true;
             }
         }
     }
     return(s_LogSetting);
 }
示例#3
0
 public static LogSetting GetSetting()
 {
     if (s_HasInit == false)
     {
         lock (s_SyncObj)
         {
             if (s_HasInit == false)
             {
                 s_LogSetting = ConfigurationManager.GetSection("log") as LogSetting;
                 s_HasInit = true;
             }
         }
     }
     return s_LogSetting;
 }
示例#4
0
 private static string GetSource()
 {
     try
     {
         LogSetting s = LogSection.GetSetting();
         if (s != null)
         {
             return(s.Source);
         }
         return(string.Empty);
     }
     catch
     {
         return(string.Empty);
     }
 }
示例#5
0
 public object Create(object parent, object configContext, XmlNode section)
 {
     LogSetting setting = new LogSetting();
     setting.Emitters = new List<LogEmitterConfig>();
     setting.Source = GetNodeAttribute(section, "source");
     if (section != null)
     {
         XmlNode[] nodeList = GetChildrenNodes(section, "emitter");
         foreach (XmlNode node in nodeList)
         {
             LogEmitterConfig emitter = new LogEmitterConfig();
             emitter.Type = GetNodeAttribute(node, "type");
             emitter.Parameters = GetParams(node);
             setting.Emitters.Add(emitter);
         }
     }
     return setting;
 }
示例#6
0
        public object Create(object parent, object configContext, XmlNode section)
        {
            LogSetting setting = new LogSetting();

            setting.Emitters = new List <LogEmitterConfig>();
            setting.Source   = GetNodeAttribute(section, "source");
            if (section != null)
            {
                XmlNode[] nodeList = GetChildrenNodes(section, "emitter");
                foreach (XmlNode node in nodeList)
                {
                    LogEmitterConfig emitter = new LogEmitterConfig();
                    emitter.Type       = GetNodeAttribute(node, "type");
                    emitter.Parameters = GetParams(node);
                    setting.Emitters.Add(emitter);
                }
            }
            return(setting);
        }