示例#1
0
        /// <summary>
        /// Инициализация журнала из конфигурационного файла.
        /// Выполняется только один раз.
        /// </summary>
        private static void InitFromConfiguration()
        {
            if (!isInitiated)
            {
                lock (InitSync)
                {
                    if (!isInitiated)
                    {
                        var section = ConfigurationManager.GetSection("metrics") as MetricsConfigurationSection;
                        if (section != null)
                        {
                            Type factoryType = Type.GetType(section.AdapterFactory);
                            if (factoryType != null)
                            {
                                var factory = Activator.CreateInstance(factoryType) as IMetricLoggerAdapterFactory;
                                if (factory != null)
                                {
                                    IMetricLoggerAdapter createdAdapter =
                                        factory.Create(
                                            section.FactoryParameters.Elements.ToDictionary(
                                                element => element.Key,
                                                element => element.Value));
                                    SetAdapter(createdAdapter);
                                }
                            }
                        }

                        isInitiated = true;
                    }
                }
            }
        }
示例#2
0
 /// <summary>
 /// Регистрация нового адаптера, который будет использоваться для сохранения метрики в журнал.
 /// После регистрации вызывается инициализация адаптера.
 /// </summary>
 /// <param name="newAdapter">Адаптер, используемый для сохранения метрик в журнал.</param>
 public static void SetAdapter(IMetricLoggerAdapter newAdapter)
 {
     adapter = newAdapter;
     adapter.Initialize();
 }