Skip to content

Commit 0d7bf77

Browse files
committed
Improve MessageSinkLogger and TestOutputLogger implementatinos
* Use a NullScope object * Check for logLevel != LogLevel.None
1 parent 9b93125 commit 0d7bf77

File tree

3 files changed

+15
-14
lines changed

3 files changed

+15
-14
lines changed

src/Testcontainers.Xunit/MessageSinkLogger.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
namespace Testcontainers.Xunit;
22

3-
internal sealed class MessageSinkLogger(IMessageSink messageSink) : ILogger, IDisposable
3+
internal sealed class MessageSinkLogger(IMessageSink messageSink) : ILogger
44
{
55
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
66
{
77
var message = exception == null ? formatter(state, null) : $"{formatter(state, exception)}{Environment.NewLine}{exception}";
88
messageSink.OnMessage(new DiagnosticMessage($"[testcontainers.org] {message}"));
99
}
1010

11-
public bool IsEnabled(LogLevel logLevel) => true;
11+
public bool IsEnabled(LogLevel logLevel) => logLevel != LogLevel.None;
1212

13-
public IDisposable BeginScope<TState>(TState state) => this;
14-
15-
public void Dispose()
16-
{
17-
}
13+
public IDisposable BeginScope<TState>(TState state) => new NullScope();
1814

1915
/// <returns>
2016
/// The hash code of the underlying message sink, because <see cref="DotNet.Testcontainers.Clients.DockerApiClient.LogContainerRuntimeInfoAsync"/>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace Testcontainers.Xunit
2+
{
3+
internal sealed class NullScope : IDisposable
4+
{
5+
public void Dispose()
6+
{
7+
}
8+
}
9+
}
Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace Testcontainers.Xunit;
22

3-
internal sealed class TestOutputLogger(ITestOutputHelper testOutputHelper) : ILogger, IDisposable
3+
internal sealed class TestOutputLogger(ITestOutputHelper testOutputHelper) : ILogger
44
{
55
private readonly Stopwatch _stopwatch = Stopwatch.StartNew();
66

@@ -13,11 +13,7 @@ public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Except
1313
}
1414
}
1515

16-
public bool IsEnabled(LogLevel logLevel) => true;
16+
public bool IsEnabled(LogLevel logLevel) => logLevel != LogLevel.None;
1717

18-
public IDisposable BeginScope<TState>(TState state) => this;
19-
20-
public void Dispose()
21-
{
22-
}
18+
public IDisposable BeginScope<TState>(TState state) => new NullScope();
2319
}

0 commit comments

Comments
 (0)