2016-04-07 17 views
0

ich programmatisch in der Lage zu finden defaultCategory für Logging zu finden bin nicht, dassGet defaultCategory in der Konfiguration in Enterprise Library Logging programmgesteuert angegeben?

in App.Config angegeben
<loggingConfiguration name="loggingConfiguration" tracingEnabled="true" 
    defaultCategory="Service1"> 
    <listeners> 

Der Punkt ist, Standard-Kategorie jedes Protokoll innerhalb des Prozesses hinzufügen, werden so auch Kategorien umgeleitet zu einer anderen Datei, hat jeder Dienst immer noch alle Protokolle in seiner Protokolldatei.

Antwort

0
 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; 
     } 
0

Wenn Enterprise Library Logger wird in web.config konfiguriert oder app.config Sie mit follwing Code den Wert von defaultCategory Attribute zugreifen können (in meinem Beispiel "General"):

<loggingConfiguration name="" defaultCategory="General" logWarningsWhenNoCategoriesMatch="true">....</loggingConfiguration> 


string defaultCategory = string.Empty; 
Logger.Writer.Configure(config => defaultCategory = config.DefaultSource); 
+0

Eine kurze Erklärung könnte helfen... – yakobom