diff --git a/src/Common.Logging.EntLib60/Logging/EntLib/EntLibLoggerFactoryAdapter.cs b/src/Common.Logging.EntLib60/Logging/EntLib/EntLibLoggerFactoryAdapter.cs index dfc595c..3f33ef5 100644 --- a/src/Common.Logging.EntLib60/Logging/EntLib/EntLibLoggerFactoryAdapter.cs +++ b/src/Common.Logging.EntLib60/Logging/EntLib/EntLibLoggerFactoryAdapter.cs @@ -18,6 +18,7 @@ #endregion +using System; using Common.Logging.Configuration; using Common.Logging.Factory; using Microsoft.Practices.EnterpriseLibrary.Common.Configuration; @@ -123,8 +124,11 @@ private LogWriter GetWriter() /// Initializes a new instance of the class. /// public EntLibLoggerFactoryAdapter() - : this(EntLibLoggerSettings.DEFAULTPRIORITY, EntLibLoggerSettings.DEFAULTEXCEPTIONFORMAT, null) - { } + : this( + EntLibLoggerSettings.DEFAULTPRIORITY, EntLibLoggerSettings.DEFAULTEXCEPTIONFORMAT, null, + EntLibLoggerSettings.DEFAULTLOGCATEGORY) + { + } /// /// Initializes a new instance of the class @@ -133,14 +137,16 @@ public EntLibLoggerFactoryAdapter() /// defaults to /// defaults to /// a instance to use - public EntLibLoggerFactoryAdapter(int defaultPriority, string exceptionFormat, LogWriter logWriter) + /// defaults to + public EntLibLoggerFactoryAdapter(int defaultPriority, string exceptionFormat, LogWriter logWriter, + string logCategory) : base(true) { if (exceptionFormat.Length == 0) { exceptionFormat = null; } - _settings = new EntLibLoggerSettings(defaultPriority, exceptionFormat); + _settings = new EntLibLoggerSettings(defaultPriority, exceptionFormat, logCategory); _logWriter = logWriter; } @@ -151,17 +157,20 @@ public EntLibLoggerFactoryAdapter(int defaultPriority, string exceptionFormat, L /// The properties. public EntLibLoggerFactoryAdapter(NameValueCollection properties) : this(ArgUtils.TryParse(EntLibLoggerSettings.DEFAULTPRIORITY, ArgUtils.GetValue(properties, "priority")) - , ArgUtils.Coalesce(ArgUtils.GetValue(properties, "exceptionFormat"), EntLibLoggerSettings.DEFAULTEXCEPTIONFORMAT) - , null + , ArgUtils.Coalesce(ArgUtils.GetValue(properties, "exceptionFormat"), EntLibLoggerSettings.DEFAULTEXCEPTIONFORMAT) + , null + , ArgUtils.Coalesce(ArgUtils.GetValue(properties, "logCategory"), EntLibLoggerSettings.DEFAULTLOGCATEGORY) ) - { } + { + } /// /// Creates a new instance. /// protected override ILog CreateLogger(string name) { - return CreateLogger(name, LogWriter, _settings); + var logCategory = String.IsNullOrWhiteSpace(_settings.logCategory) ? name : _settings.logCategory; + return CreateLogger(logCategory, LogWriter, _settings); } /// diff --git a/src/Common.Logging.EntLib60/Logging/EntLib/EntLibLoggerSettings.cs b/src/Common.Logging.EntLib60/Logging/EntLib/EntLibLoggerSettings.cs index 7be168a..6b8c685 100644 --- a/src/Common.Logging.EntLib60/Logging/EntLib/EntLibLoggerSettings.cs +++ b/src/Common.Logging.EntLib60/Logging/EntLib/EntLibLoggerSettings.cs @@ -39,23 +39,35 @@ public class EntLibLoggerSettings /// public static readonly string DEFAULTEXCEPTIONFORMAT = "Exception[ message = $(exception.message), source = $(exception.source), targetsite = $(exception.targetsite), stacktrace = $(exception.stacktrace) ]"; + /// + /// the default log category used for logging in Enterprise Library. + /// + public static readonly string DEFAULTLOGCATEGORY = ""; + /// /// the default priority to be used. /// public readonly int priority = DEFAULTPRIORITY; + //format like nlog is better? - i.e. ${exception:format=message,stacktrace:separator=, } /// /// the exception format to be used. /// public readonly string exceptionFormat = DEFAULTEXCEPTIONFORMAT; + /// + /// the default log category used for logging in Enterprise Library. + /// + public readonly string logCategory = DEFAULTLOGCATEGORY; + /// /// Initializes a new instance. /// - public EntLibLoggerSettings(int defaultPriority, string exceptionFormat) + public EntLibLoggerSettings(int defaultPriority, string exceptionFormat, string defaultLogCategory) { this.priority = defaultPriority; this.exceptionFormat = exceptionFormat; + this.logCategory = defaultLogCategory; } } } \ No newline at end of file diff --git a/test/Common.Logging.EntLib60.Tests/Logging/EntLib/EntLibLoggerFactoryAdapterTests.cs b/test/Common.Logging.EntLib60.Tests/Logging/EntLib/EntLibLoggerFactoryAdapterTests.cs index 0dfc9dc..4ddc578 100644 --- a/test/Common.Logging.EntLib60.Tests/Logging/EntLib/EntLibLoggerFactoryAdapterTests.cs +++ b/test/Common.Logging.EntLib60.Tests/Logging/EntLib/EntLibLoggerFactoryAdapterTests.cs @@ -83,15 +83,15 @@ private static TestEntLibLoggerFactoryAdapter CreateTestEntLibLoggerFactoryAdapt , true ); - return new TestEntLibLoggerFactoryAdapter(5, EntLibLoggerSettings.DEFAULTEXCEPTIONFORMAT, logWriter); + return new TestEntLibLoggerFactoryAdapter(5, EntLibLoggerSettings.DEFAULTEXCEPTIONFORMAT, logWriter, EntLibLoggerSettings.DEFAULTLOGCATEGORY); } private class TestEntLibLoggerFactoryAdapter: EntLibLoggerFactoryAdapter { public LogEntry LastLogEntry; - public TestEntLibLoggerFactoryAdapter(int defaultPriority, string exceptionFormat, LogWriter logWriter) - : base(defaultPriority, exceptionFormat, logWriter) + public TestEntLibLoggerFactoryAdapter(int defaultPriority, string exceptionFormat, LogWriter logWriter, string logCategory) + : base(defaultPriority, exceptionFormat, logWriter, logCategory) { } diff --git a/test/Common.Logging.EntLib60.Tests/Logging/EntLib/EntLibTests.cs b/test/Common.Logging.EntLib60.Tests/Logging/EntLib/EntLibTests.cs index c7c3651..5b3d8ca 100644 --- a/test/Common.Logging.EntLib60.Tests/Logging/EntLib/EntLibTests.cs +++ b/test/Common.Logging.EntLib60.Tests/Logging/EntLib/EntLibTests.cs @@ -35,7 +35,7 @@ public class EntLibTests : ILogTestsBase protected override ILoggerFactoryAdapter GetLoggerFactoryAdapter() { LogWriter lw = new LogWriter(new List(), new List(), new LogSource("errorSource"), "default"); - return new EntLibLoggerFactoryAdapter(EntLibLoggerSettings.DEFAULTPRIORITY, EntLibLoggerSettings.DEFAULTEXCEPTIONFORMAT, lw); + return new EntLibLoggerFactoryAdapter(EntLibLoggerSettings.DEFAULTPRIORITY, EntLibLoggerSettings.DEFAULTEXCEPTIONFORMAT, lw, EntLibLoggerSettings.DEFAULTLOGCATEGORY); } [Test]