diff --git a/src/changelog/3.2.1/268-shorten-test-output.xml b/src/changelog/3.2.1/268-shorten-test-output.xml new file mode 100644 index 00000000..4a0ea400 --- /dev/null +++ b/src/changelog/3.2.1/268-shorten-test-output.xml @@ -0,0 +1,10 @@ + + + + + shorten console output for unit tests (by @FreeAndNil in https://github.com/apache/logging-log4net/pull/268[#268]) + + \ No newline at end of file diff --git a/src/log4net.Tests/Util/LogLogTest.cs b/src/log4net.Tests/Util/LogLogTest.cs index 3cde0e3b..94acb385 100644 --- a/src/log4net.Tests/Util/LogLogTest.cs +++ b/src/log4net.Tests/Util/LogLogTest.cs @@ -32,6 +32,9 @@ namespace log4net.Tests.Util; [TestFixture] public class LogLogTest { + /// + /// Tests the functionality + /// [Test] public void TraceListenerCounterTest() { @@ -46,6 +49,9 @@ public void TraceListenerCounterTest() Assert.That(listTraceListener.Count, Is.EqualTo(2)); } + /// + /// Tests the property + /// [Test] public void EmitInternalMessages() { @@ -71,6 +77,9 @@ public void EmitInternalMessages() } } + /// + /// Tests the class. + /// [Test] public void LogReceivedAdapter() { @@ -90,10 +99,13 @@ public void LogReceivedAdapter() [Test] public void LogReceivedAdapterThreading() { - for (int i = 0; i < 1000; i++) + LogLog.ExecuteWithoutEmittingInternalMessages(() => { - LogReceivedAdapterThreadingCore(i); - } + for (int i = 0; i < 1000; i++) + { + LogReceivedAdapterThreadingCore(i); + } + }); } [System.Diagnostics.CodeAnalysis.SuppressMessage("Security", "CA5394:Do not use insecure randomness", @@ -119,13 +131,20 @@ private void LogReceivedAdapterThreadingCore(int seed) } } +/// +/// Mock for that counts the number of calls to +/// internal sealed class TraceListenerCounter : TraceListener { + /// public override void Write(string? message) => Count++; + /// public override void WriteLine(string? message) => Write(message); + /// public void Reset() => Count = 0; + /// public int Count { get; private set; } -} +} \ No newline at end of file diff --git a/src/log4net/Util/LogLog.cs b/src/log4net/Util/LogLog.cs index f5f3c607..121bb4b3 100644 --- a/src/log4net/Util/LogLog.cs +++ b/src/log4net/Util/LogLog.cs @@ -223,10 +223,29 @@ static LogLog() public static bool QuietMode { get; set; } /// - /// + /// Configures whether internal messages are emitted to Console.Out and Console.Error. /// public static bool EmitInternalMessages { get; set; } = true; + /// + /// Execute the callback with internal messages suppressed + /// + /// Callback + public static void ExecuteWithoutEmittingInternalMessages(Action callback) + { + callback.EnsureNotNull(); + bool oldEmitInternalMessages = EmitInternalMessages; + EmitInternalMessages = false; + try + { + callback(); + } + finally + { + EmitInternalMessages = oldEmitInternalMessages; + } + } + /// /// Raises the LogReceived event when an internal messages is received. ///