Получить defaultCategory, указанный в конфигурации в журнале Enterprise Library программным путем?

Я не могу найти программный способ найти defaultCategory для ведения журнала, который указан в App.Config

  <loggingConfiguration name="loggingConfiguration" tracingEnabled="true"
    defaultCategory="Service1">
    <listeners>

Смысл в том, чтобы добавить категорию по умолчанию к каждому журналу в процессе, чтобы даже категории перенаправлялись в разные файлы, у каждой службы все свои журналы по-прежнему будут храниться в его файле журнала.

2 ответа

Решение
        private static string TryGetDefaultCategory()
        {
            string result = null;
            try
            {
                var configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

                var loggingSection =
                        configuration.Sections.OfType<Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings>().First();
                result = loggingSection?.DefaultCategory;
            }
            catch (Exception ex)
            {
                // Error("[Logging] Failed to get Default Category", ex);
            }
            return result;
        }

Когда Enterprise Library Logger настроен в web.config или app.config, вы можете получить доступ к значению атрибута defaultCategory с помощью следующего кода (в моем примере "Общие"):

<loggingConfiguration name="" defaultCategory="General" logWarningsWhenNoCategoriesMatch="true">....</loggingConfiguration>


string defaultCategory = string.Empty;
Logger.Writer.Configure(config => defaultCategory = config.DefaultSource);
Другие вопросы по тегам