Как установить databaseInstanceName в прослушивателе трассировки базы данных из кода С#?

Это может быть простой вопрос. Есть ли способ, с помощью которого мы можем программно установить databaseInstanceName в прослушивателе трассировки базы данных? Поскольку мое приложение взаимодействует с разными базами данных (скажем, в теге connectionString у меня есть 3 строки подключения, указывающие на разные БД), поэтому у меня есть требование регистрировать исключение в БД, но в соответствующих базах данных. Я не должен создавать отдельную базу данных для ведения журнала.

Есть ли способ?


person Bose_geek    schedule 30.07.2013    source источник


Ответы (1)


Использование Fluent API для настройки Enterprise Library...

var configurationSourceBuilder = new ConfigurationSourceBuilder();

// do other configuration here

configurationSourceBuilder
    .ConfigureLogging()
        .LogToCategoryNamed("Category")
            .SendTo.Database("Database Trace Listener")
                .UseDatabase("DatabaseInstance");

// or here

var configurationSource = new DictionaryConfigurationSource();
configurationSourceBuilder.UpdateConfigurationWithReplace(configurationSource);
EnterpriseLibraryContainer.Current = EnterpriseLibraryContainer.CreateDefaultContainer(configurationSource);

Если причина, по которой у вас есть три строки подключения, заключается в том, что ваша программа должна поддерживать работу в трех разных средах (dev/test/production?), лучшим вариантом может быть вместо этого иметь одну строку подключения. Затем разверните файлы конфигурации, настроенные для каждой среды, чтобы код был идентичен для всех сред.

person Tim B    schedule 30.07.2013
comment
Привет, @Tim B. Я добавил .WithOptions.SetAsDefaultCategory() в приведенный выше код, и он начал работать. Большое спасибо :-) - person Bose_geek; 31.07.2013