【问题标题】:How to set databaseInstanceName in Database Trace Listener from C# code?如何从 C# 代码在数据库跟踪侦听器中设置 databaseInstanceName?
【发布时间】:2013-07-30 11:30:17
【问题描述】:

这可能是一个简单的问题。有什么方法可以通过编程方式在数据库跟踪侦听器中设置 databaseInstanceName 吗?由于我的应用程序与不同的数据库进行交互(假设在 connectionString 标记中我有 3 个连接字符串指向不同的数据库),所以我需要将异常记录在 db 中但记录到相应的数据库中。我不应该为日志创建一个单独的数据库。

有办法吗?

【问题讨论】:

    标签: c# exception-handling enterprise-library tracelistener


    【解决方案1】:

    使用 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);
    

    如果您拥有三个连接字符串的原因是您的程序必须支持在三种不同的环境(开发/测试/生产?)中运行,那么更好的选择可能是使用单个连接字符串。然后部署为每个环境定制的配置文件,使所有环境的代码都是相同的。

    【讨论】:

    • 嘿@Tim B。我在上面的代码中添加了 .WithOptions.SetAsDefaultCategory() 并开始工作。非常感谢:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 2015-02-25
    • 2016-05-12
    相关资源
    最近更新 更多