From 978445e7d7a4e7be5feb202e49667ac48ef2ef14 Mon Sep 17 00:00:00 2001 From: moozzyk Date: Fri, 20 May 2016 10:50:18 -0700 Subject: [PATCH] Allow configuring the trace source logger without a TraceListener instance Addresses parking lot/I-#405 --- .../TraceSourceLoggerProvider.cs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/Microsoft.Extensions.Logging.TraceSource/TraceSourceLoggerProvider.cs b/src/Microsoft.Extensions.Logging.TraceSource/TraceSourceLoggerProvider.cs index 284d1ceb..9a2055d7 100644 --- a/src/Microsoft.Extensions.Logging.TraceSource/TraceSourceLoggerProvider.cs +++ b/src/Microsoft.Extensions.Logging.TraceSource/TraceSourceLoggerProvider.cs @@ -20,6 +20,15 @@ public class TraceSourceLoggerProvider : ILoggerProvider private bool _disposed = false; + /// + /// Initializes a new instance of the class. + /// + /// + public TraceSourceLoggerProvider(SourceSwitch rootSourceSwitch) + : this(rootSourceSwitch, null) + { + } + /// /// Initializes a new instance of the class. /// @@ -32,11 +41,6 @@ public TraceSourceLoggerProvider(SourceSwitch rootSourceSwitch, TraceListener ro throw new ArgumentNullException(nameof(rootSourceSwitch)); } - if (rootTraceListener == null) - { - throw new ArgumentNullException(nameof(rootTraceListener)); - } - _rootSourceSwitch = rootSourceSwitch; _rootTraceListener = rootTraceListener; } @@ -115,7 +119,10 @@ public void Dispose() { _disposed = true; _rootTraceListener.Flush(); - _rootTraceListener.Dispose(); + if (_rootTraceListener != null) + { + _rootTraceListener.Dispose(); + } } } }