这可能是一个简单的问题。有什么方法可以通过编程方式在数据库跟踪侦听器中设置 databaseInstanceName 吗?由于我的应用程序与不同的数据库进行交互(假设在 connectionString 标记中我有 3 个连接字符串指向不同的数据库),所以我需要将异常记录在 db 中但记录到相应的数据库中。我不应该为日志创建一个单独的数据库。
有办法吗?
这可能是一个简单的问题。有什么方法可以通过编程方式在数据库跟踪侦听器中设置 databaseInstanceName 吗?由于我的应用程序与不同的数据库进行交互(假设在 connectionString 标记中我有 3 个连接字符串指向不同的数据库),所以我需要将异常记录在 db 中但记录到相应的数据库中。我不应该为日志创建一个单独的数据库。
有办法吗?
使用 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);
如果您拥有三个连接字符串的原因是您的程序必须支持在三种不同的环境(开发/测试/生产?)中运行,那么更好的选择可能是使用单个连接字符串。然后部署为每个环境定制的配置文件,使所有环境的代码都相同。