如何从C#代码在数据库跟踪侦听器中设置databaseInstanceName

本文关键字:侦听器 跟踪 设置 databaseInstanceName 数据库 代码 | 更新日期: 2023-09-27 18:25:25

这可能是一个简单的问题。有没有什么方法可以在数据库跟踪侦听器中通过程序设置databaseInstanceName?当我的应用程序与不同的数据库交互时(比如说在connectionString标记中,我有3个连接字符串指向不同的数据库),所以我需要将异常记录在数据库中,但要记录到相应的数据库中。我并不害怕创建一个单独的数据库用于日志记录。

有办法吗?

如何从C#代码在数据库跟踪侦听器中设置databaseInstanceName

使用fluent API配置企业库。。。

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?),那么更好的选择可能是使用一个连接字符串。然后部署为每个环境定制的配置文件,以便所有环境的代码都相同。