【问题标题】:Get defaultCategory specified in config in Enterprise Library Logging programmatically?以编程方式获取企业库日志中的配置中指定的 defaultCategory?
【发布时间】:2016-04-07 12:36:21
【问题描述】:

我无法找到在 App.Config 中指定的用于日志记录的 defaultCategory 的编程方式

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

重点是为进程中的每个日志添加默认类别,因此即使类别被重定向到不同的文件,每个服务仍然会将其所有日志都保存在其日志文件中。

【问题讨论】:

    标签: c# .net app-config enterprise-library enterprise-library-5


    【解决方案1】:
            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;
            }
    

    【讨论】:

      【解决方案2】:

      当在 web.config 或 app.config 中配置 Enterprise Library Logger 时,您可以使用以下代码访问 defaultCategory 属性的值(在我的示例中为“常规”):

      <loggingConfiguration name="" defaultCategory="General" logWarningsWhenNoCategoriesMatch="true">....</loggingConfiguration>
      
      
      string defaultCategory = string.Empty;
      Logger.Writer.Configure(config => defaultCategory = config.DefaultSource);
      

      【讨论】:

        猜你喜欢
        • 2010-12-18
        • 2011-03-29
        • 2015-10-12
        • 1970-01-01
        • 2011-09-26
        • 1970-01-01
        • 2011-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多