コード例 #1
0
        /// <summary>
        /// Чтение листнеров из конфигурации и запись в указанный логгер
        /// </summary>
        /// <param name="logger">Целевой логгер</param>
        /// <param name="listeners">Коллекция элементов листенеров из конфигурации</param>
        private static void ReadListeners(ILogger logger, IEnumerable <ListenerElement> listeners)
        {
            var listenersFromConfg = new List <Listener>();

            foreach (var listener in listeners)
            {
                var newListener = new Listener()
                {
                    Name = listener.Name
                };

                foreach (var filter in listener.Filters.Cast <FilterElementBase>())
                {
                    newListener.AddFilter(filter);
                }

                foreach (var adapterElement in listener.Adapters.OfType <LogAdapterElement>().Where(el => el != null))
                {
                    if (adapterElement.IsEnabled == false) //не создаем адаптер если он выключен
                    {
                        continue;
                    }

                    var newAdapter = CreateAdapter(adapterElement);
                    if (newAdapter != null)
                    {
                        newListener.AddAdapter(newAdapter);
                    }
                }

                listenersFromConfg.Add(newListener);
                logger.AddListener(newListener);
            }
        }