From d1c4139bfd1673d9fd6b780dcba992fb3af8181e Mon Sep 17 00:00:00 2001
From: Stijn Moreels <9039753+stijnmoreels@users.noreply.github.com>
Date: Wed, 29 Jan 2025 08:49:17 +0100
Subject: [PATCH] fix: deprecate logger core package (#264)
---
.../Arcus.Testing.Logging.Core.csproj | 4 ++--
.../CustomLoggerProvider.cs | 3 +++
.../InMemoryLogSink.cs | 6 +++--
.../InMemoryLogger.cs | 3 +++
.../InMemoryLoggerT.cs | 6 ++++-
src/Arcus.Testing.Logging.Core/LogEntry.cs | 3 +++
.../Arcus.Testing.Logging.MSTest.csproj | 2 ++
.../Extensions/ILoggerBuilderExtensions.cs | 23 ++++++++++++++++---
.../LoggerSinkConfigurationExtensions.cs | 2 ++
.../MSTestLogEventSink.cs | 2 ++
.../Arcus.Testing.Logging.NUnit.csproj | 3 ++-
.../Extensions/ILoggerBuilderExtensions.cs | 23 +++++++++++++++++--
.../Arcus.Testing.Logging.Xunit.csproj | 3 ++-
.../Extensions/ILoggerBuilderExtensions.cs | 23 ++++++++++++++++---
14 files changed, 91 insertions(+), 15 deletions(-)
diff --git a/src/Arcus.Testing.Logging.Core/Arcus.Testing.Logging.Core.csproj b/src/Arcus.Testing.Logging.Core/Arcus.Testing.Logging.Core.csproj
index 60dd75d4..5ef60aea 100644
--- a/src/Arcus.Testing.Logging.Core/Arcus.Testing.Logging.Core.csproj
+++ b/src/Arcus.Testing.Logging.Core/Arcus.Testing.Logging.Core.csproj
@@ -7,10 +7,10 @@
Arcus
Provides logging capabilities during Arcus testing
Copyright (c) Arcus
- false
+ true
false
true
- $(WarningsNotAsErrors);NU1901;NU1902;NU1903;NU1904
+ $(WarningsNotAsErrors);NU1901;NU1902;NU1903;NU1904;CS6018
diff --git a/src/Arcus.Testing.Logging.Core/CustomLoggerProvider.cs b/src/Arcus.Testing.Logging.Core/CustomLoggerProvider.cs
index 552f7093..f33f1ca1 100644
--- a/src/Arcus.Testing.Logging.Core/CustomLoggerProvider.cs
+++ b/src/Arcus.Testing.Logging.Core/CustomLoggerProvider.cs
@@ -6,6 +6,9 @@ namespace Arcus.Testing
///
/// Custom that creates a custom provider.
///
+#pragma warning disable S1133
+ [Obsolete("Will be removed in v2.0, use the specific logging packages (Xunit, NUnit, MSTest) instead")]
+#pragma warning restore
public class CustomLoggerProvider : ILoggerProvider
{
private readonly ILogger _logger;
diff --git a/src/Arcus.Testing.Logging.Core/InMemoryLogSink.cs b/src/Arcus.Testing.Logging.Core/InMemoryLogSink.cs
index ace94766..e4053b6b 100644
--- a/src/Arcus.Testing.Logging.Core/InMemoryLogSink.cs
+++ b/src/Arcus.Testing.Logging.Core/InMemoryLogSink.cs
@@ -10,11 +10,13 @@ namespace Arcus.Testing
///
/// Represents a logging sink that collects the emitted log events in-memory.
///
+#pragma warning disable S1133
[Obsolete("Arcus.Testing.Logging.Core will stop supporting Serilog by default, please implement Serilog sinks yourself as this sink will be removed in v2.0")]
+#pragma warning restore
public class InMemoryLogSink : ILogEventSink
{
private readonly ConcurrentQueue _logEmits = new ConcurrentQueue();
-
+
///
/// Gets the current log emits available on the sink.
///
@@ -24,7 +26,7 @@ public class InMemoryLogSink : ILogEventSink
/// Gets the current messages of the log emits available on the sink.
///
public IEnumerable CurrentLogMessages => CurrentLogEmits.Select(emit => emit.RenderMessage());
-
+
///
/// Emit the provided log event to the sink.
///
diff --git a/src/Arcus.Testing.Logging.Core/InMemoryLogger.cs b/src/Arcus.Testing.Logging.Core/InMemoryLogger.cs
index 706abc1f..3749c1da 100644
--- a/src/Arcus.Testing.Logging.Core/InMemoryLogger.cs
+++ b/src/Arcus.Testing.Logging.Core/InMemoryLogger.cs
@@ -9,6 +9,9 @@ namespace Arcus.Testing
///
/// Spy (stub) implementation to track the logged messages in-memory.
///
+#pragma warning disable S1133
+ [Obsolete("Will be removed in v2.0, use the specific logging packages (Xunit, NUnit, MSTest) instead")]
+#pragma warning restore
public class InMemoryLogger : ILogger
{
private readonly ConcurrentQueue _entries = new ConcurrentQueue();
diff --git a/src/Arcus.Testing.Logging.Core/InMemoryLoggerT.cs b/src/Arcus.Testing.Logging.Core/InMemoryLoggerT.cs
index 2feb70b0..c9914111 100644
--- a/src/Arcus.Testing.Logging.Core/InMemoryLoggerT.cs
+++ b/src/Arcus.Testing.Logging.Core/InMemoryLoggerT.cs
@@ -1,4 +1,5 @@
-using Microsoft.Extensions.Logging;
+using System;
+using Microsoft.Extensions.Logging;
namespace Arcus.Testing
{
@@ -6,6 +7,9 @@ namespace Arcus.Testing
/// Spy (stub) implementation to track the logged messages in-memory.
///
/// The type who's name is used for the logger category name.
+#pragma warning disable S1133
+ [Obsolete("Will be removed in v2.0, use the specific logging packages (Xunit, NUnit, MSTest) instead")]
+#pragma warning restore
public class InMemoryLogger : InMemoryLogger, ILogger
{
}
diff --git a/src/Arcus.Testing.Logging.Core/LogEntry.cs b/src/Arcus.Testing.Logging.Core/LogEntry.cs
index ac3eda59..b8e557aa 100644
--- a/src/Arcus.Testing.Logging.Core/LogEntry.cs
+++ b/src/Arcus.Testing.Logging.Core/LogEntry.cs
@@ -6,6 +6,9 @@ namespace Arcus.Testing
///
/// Represents a logged message by a instance.
///
+#pragma warning disable S1133
+ [Obsolete("Will be removed in v2.0, use the specific logging packages (Xunit, NUnit, MSTest) instead")]
+#pragma warning restore
public class LogEntry
{
///
diff --git a/src/Arcus.Testing.Logging.MSTest/Arcus.Testing.Logging.MSTest.csproj b/src/Arcus.Testing.Logging.MSTest/Arcus.Testing.Logging.MSTest.csproj
index df1ca790..685341e4 100644
--- a/src/Arcus.Testing.Logging.MSTest/Arcus.Testing.Logging.MSTest.csproj
+++ b/src/Arcus.Testing.Logging.MSTest/Arcus.Testing.Logging.MSTest.csproj
@@ -32,7 +32,9 @@
+
+
diff --git a/src/Arcus.Testing.Logging.MSTest/Extensions/ILoggerBuilderExtensions.cs b/src/Arcus.Testing.Logging.MSTest/Extensions/ILoggerBuilderExtensions.cs
index ba3399c6..15713ddd 100644
--- a/src/Arcus.Testing.Logging.MSTest/Extensions/ILoggerBuilderExtensions.cs
+++ b/src/Arcus.Testing.Logging.MSTest/Extensions/ILoggerBuilderExtensions.cs
@@ -22,10 +22,27 @@ public static ILoggingBuilder AddMSTestLogging(this ILoggingBuilder builder, Tes
ArgumentNullException.ThrowIfNull(builder);
ArgumentNullException.ThrowIfNull(testContext);
- var logger = new MSTestLogger(testContext);
- var provider = new CustomLoggerProvider(logger);
-
+ var provider = new MSTestLoggerProvider(testContext);
return builder.AddProvider(provider);
}
+
+ private sealed class MSTestLoggerProvider : ILoggerProvider
+ {
+ private readonly ILogger _logger;
+
+ public MSTestLoggerProvider(TestContext context)
+ {
+ _logger = new MSTestLogger(context);
+ }
+
+ public ILogger CreateLogger(string categoryName)
+ {
+ return _logger;
+ }
+
+ public void Dispose()
+ {
+ }
+ }
}
}
diff --git a/src/Arcus.Testing.Logging.MSTest/Extensions/LoggerSinkConfigurationExtensions.cs b/src/Arcus.Testing.Logging.MSTest/Extensions/LoggerSinkConfigurationExtensions.cs
index 41f99c71..78a5b648 100644
--- a/src/Arcus.Testing.Logging.MSTest/Extensions/LoggerSinkConfigurationExtensions.cs
+++ b/src/Arcus.Testing.Logging.MSTest/Extensions/LoggerSinkConfigurationExtensions.cs
@@ -16,7 +16,9 @@ public static class LoggerSinkConfigurationExtensions
/// The Serilog sink configuration where the NUnit test logging will be added.
/// The MSTest test writer to write custom test output.
/// Thrown when the or is null.
+#pragma warning disable S1133
[Obsolete("Arcus.Testing.Logging.MSTest will stop supporting Serilog by default, please implement Serilog sinks yourself as this extension will be removed in v2.0")]
+#pragma warning restore
public static LoggerConfiguration MSTestLogging(this LoggerSinkConfiguration config, TestContext testContext)
{
if (config is null)
diff --git a/src/Arcus.Testing.Logging.MSTest/MSTestLogEventSink.cs b/src/Arcus.Testing.Logging.MSTest/MSTestLogEventSink.cs
index 237e981b..d330f132 100644
--- a/src/Arcus.Testing.Logging.MSTest/MSTestLogEventSink.cs
+++ b/src/Arcus.Testing.Logging.MSTest/MSTestLogEventSink.cs
@@ -8,7 +8,9 @@ namespace Arcus.Testing
///
/// representation of an instance.
///
+#pragma warning disable S1133
[Obsolete("Arcus.Testing.Logging.MSTest will stop supporting Serilog by default, please implement Serilog sinks yourself as this sink will be removed in v2.0")]
+#pragma warning restore
public class MSTestLogEventSink : ILogEventSink
{
private readonly TestContext _context;
diff --git a/src/Arcus.Testing.Logging.NUnit/Arcus.Testing.Logging.NUnit.csproj b/src/Arcus.Testing.Logging.NUnit/Arcus.Testing.Logging.NUnit.csproj
index 4eab2db0..f752f41c 100644
--- a/src/Arcus.Testing.Logging.NUnit/Arcus.Testing.Logging.NUnit.csproj
+++ b/src/Arcus.Testing.Logging.NUnit/Arcus.Testing.Logging.NUnit.csproj
@@ -28,7 +28,8 @@
+
-
+
diff --git a/src/Arcus.Testing.Logging.NUnit/Extensions/ILoggerBuilderExtensions.cs b/src/Arcus.Testing.Logging.NUnit/Extensions/ILoggerBuilderExtensions.cs
index fad24066..068b91e1 100644
--- a/src/Arcus.Testing.Logging.NUnit/Extensions/ILoggerBuilderExtensions.cs
+++ b/src/Arcus.Testing.Logging.NUnit/Extensions/ILoggerBuilderExtensions.cs
@@ -23,7 +23,7 @@ public static ILoggingBuilder AddNUnitTestLogging(this ILoggingBuilder builder,
ArgumentNullException.ThrowIfNull(outputWriter);
var logger = new NUnitTestLogger(outputWriter);
- var provider = new CustomLoggerProvider(logger);
+ var provider = new NUnitLoggerProvider(logger);
return builder.AddProvider(provider);
}
@@ -41,9 +41,28 @@ public static ILoggingBuilder AddNUnitTestLogging(this ILoggingBuilder builder,
ArgumentNullException.ThrowIfNull(outputWriter);
var logger = new NUnitTestLogger(outputWriter, errorWriter);
- var provider = new CustomLoggerProvider(logger);
+ var provider = new NUnitLoggerProvider(logger);
return builder.AddProvider(provider);
}
+
+ private sealed class NUnitLoggerProvider : ILoggerProvider
+ {
+ private readonly NUnitTestLogger _logger;
+
+ public NUnitLoggerProvider(NUnitTestLogger logger)
+ {
+ _logger = logger;
+ }
+
+ public ILogger CreateLogger(string categoryName)
+ {
+ return _logger;
+ }
+
+ public void Dispose()
+ {
+ }
+ }
}
}
diff --git a/src/Arcus.Testing.Logging.Xunit/Arcus.Testing.Logging.Xunit.csproj b/src/Arcus.Testing.Logging.Xunit/Arcus.Testing.Logging.Xunit.csproj
index 0cb62779..73c3fbbb 100644
--- a/src/Arcus.Testing.Logging.Xunit/Arcus.Testing.Logging.Xunit.csproj
+++ b/src/Arcus.Testing.Logging.Xunit/Arcus.Testing.Logging.Xunit.csproj
@@ -32,7 +32,8 @@
+
-
+
diff --git a/src/Arcus.Testing.Logging.Xunit/Extensions/ILoggerBuilderExtensions.cs b/src/Arcus.Testing.Logging.Xunit/Extensions/ILoggerBuilderExtensions.cs
index d1af75dc..390c984c 100644
--- a/src/Arcus.Testing.Logging.Xunit/Extensions/ILoggerBuilderExtensions.cs
+++ b/src/Arcus.Testing.Logging.Xunit/Extensions/ILoggerBuilderExtensions.cs
@@ -22,10 +22,27 @@ public static ILoggingBuilder AddXunitTestLogging(this ILoggingBuilder builder,
ArgumentNullException.ThrowIfNull(builder);
ArgumentNullException.ThrowIfNull(outputWriter);
- var logger = new XunitTestLogger(outputWriter);
- var provider = new CustomLoggerProvider(logger);
-
+ var provider = new XunitLoggerProvider(outputWriter);
return builder.AddProvider(provider);
}
+
+ private sealed class XunitLoggerProvider : ILoggerProvider
+ {
+ private readonly ILogger _logger;
+
+ public XunitLoggerProvider(ITestOutputHelper outputWriter)
+ {
+ _logger = new XunitTestLogger(outputWriter);
+ }
+
+ public ILogger CreateLogger(string categoryName)
+ {
+ return _logger;
+ }
+
+ public void Dispose()
+ {
+ }
+ }
}
}