diff --git a/src/Serilog.Extensions.Logging/Extensions/Logging/LoggerProviderCollection.cs b/src/Serilog.Extensions.Logging/Extensions/Logging/LoggerProviderCollection.cs index 6ecb000..7a0e08b 100644 --- a/src/Serilog.Extensions.Logging/Extensions/Logging/LoggerProviderCollection.cs +++ b/src/Serilog.Extensions.Logging/Extensions/Logging/LoggerProviderCollection.cs @@ -26,7 +26,7 @@ namespace Serilog.Extensions.Logging /// public class LoggerProviderCollection : IDisposable { - volatile ILoggerProvider[] _providers = new ILoggerProvider[0]; + volatile ILoggerProvider[] _providers = Array.Empty(); /// /// Add to the collection. @@ -36,16 +36,16 @@ public void AddProvider(ILoggerProvider provider) { if (provider == null) throw new ArgumentNullException(nameof(provider)); - var existing = _providers; - var added = existing.Concat(new[] {provider}).ToArray(); + ILoggerProvider[] existing, added; -#pragma warning disable 420 // ref to a volatile field - while (Interlocked.CompareExchange(ref _providers, added, existing) != existing) -#pragma warning restore 420 + do { existing = _providers; added = existing.Concat(new[] { provider }).ToArray(); } +#pragma warning disable 420 // ref to a volatile field + while (Interlocked.CompareExchange(ref _providers, added, existing) != existing); +#pragma warning restore 420 } /// diff --git a/src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLoggerProvider.cs b/src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLoggerProvider.cs index f4daf8a..d51c2c0 100644 --- a/src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLoggerProvider.cs +++ b/src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLoggerProvider.cs @@ -69,8 +69,7 @@ public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory) List scopeItems = null; for (var scope = CurrentScope; scope != null; scope = scope.Parent) { - LogEventPropertyValue scopeItem; - scope.EnrichAndCreateScopeItem(logEvent, propertyFactory, out scopeItem); + scope.EnrichAndCreateScopeItem(logEvent, propertyFactory, out LogEventPropertyValue scopeItem); if (scopeItem != null) { diff --git a/src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLoggerScope.cs b/src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLoggerScope.cs index 424d459..045359a 100644 --- a/src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLoggerScope.cs +++ b/src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLoggerScope.cs @@ -57,8 +57,7 @@ public void EnrichAndCreateScopeItem(LogEvent logEvent, ILogEventPropertyFactory return; } - var stateProperties = _state as IEnumerable>; - if (stateProperties != null) + if (_state is IEnumerable> stateProperties) { scopeItem = null; // Unless it's `FormattedLogValues`, these are treated as property bags rather than scope items. @@ -78,7 +77,7 @@ public void EnrichAndCreateScopeItem(LogEvent logEvent, ILogEventPropertyFactory key = key.Substring(1); destructureObject = true; } - + var property = propertyFactory.CreateProperty(key, stateProperty.Value, destructureObject); logEvent.AddPropertyIfAbsent(property); } diff --git a/src/Serilog.Extensions.Logging/SerilogLoggerFactoryExtensions.cs b/src/Serilog.Extensions.Logging/SerilogLoggerFactoryExtensions.cs index c2aa06d..5292603 100644 --- a/src/Serilog.Extensions.Logging/SerilogLoggerFactoryExtensions.cs +++ b/src/Serilog.Extensions.Logging/SerilogLoggerFactoryExtensions.cs @@ -20,7 +20,7 @@ public static class SerilogLoggerFactoryExtensions /// When true, dispose when the framework disposes the provider. If the /// logger is not specified but is true, the method will be /// called on the static class instead. - /// The logger factory. + /// Reference to the supplied . public static ILoggerFactory AddSerilog( this ILoggerFactory factory, ILogger logger = null, diff --git a/src/Serilog.Extensions.Logging/SerilogLoggingBuilderExtensions.cs b/src/Serilog.Extensions.Logging/SerilogLoggingBuilderExtensions.cs index 27bb6dd..2cf0008 100644 --- a/src/Serilog.Extensions.Logging/SerilogLoggingBuilderExtensions.cs +++ b/src/Serilog.Extensions.Logging/SerilogLoggingBuilderExtensions.cs @@ -32,7 +32,7 @@ public static class SerilogLoggingBuilderExtensions /// When true, dispose when the framework disposes the provider. If the /// logger is not specified but is true, the method will be /// called on the static class instead. - /// The logger factory. + /// Reference to the supplied . public static ILoggingBuilder AddSerilog(this ILoggingBuilder builder, ILogger logger = null, bool dispose = false) { if (builder == null) throw new ArgumentNullException(nameof(builder));