Skip to content

Commit 7107bce

Browse files
committed
ref: remove Enabled-checks on Default-Logger
1 parent 54062d2 commit 7107bce

File tree

3 files changed

+44
-40
lines changed

3 files changed

+44
-40
lines changed

src/Sentry/Internal/DefaultSentryStructuredLogger.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,18 @@ internal sealed class DefaultSentryStructuredLogger : SentryStructuredLogger
1111
private readonly SentryOptions _options;
1212
private readonly ISystemClock _clock;
1313

14-
private readonly bool _isEnabled;
15-
1614
internal DefaultSentryStructuredLogger(IHub hub, IInternalScopeManager scopeManager, SentryOptions options, ISystemClock clock)
1715
{
16+
Debug.Assert(options is { Experimental.EnableLogs: true });
17+
1818
_hub = hub;
1919
_scopeManager = scopeManager;
2020
_options = options;
2121
_clock = clock;
22-
23-
_isEnabled = options is { Experimental.EnableLogs: true };
2422
}
2523

2624
private protected override void CaptureLog(SentryLogLevel level, string template, object[]? parameters, Action<SentryLog>? configureLog)
2725
{
28-
if (!_isEnabled)
29-
{
30-
return;
31-
}
32-
3326
var timestamp = _clock.GetUtcNow();
3427

3528
if (!TryGetTraceId(_hub, _scopeManager, out var traceId))

test/Sentry.Tests/HubTests.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1457,6 +1457,34 @@ public void Logger_IsEnabled_DoesCaptureLog()
14571457
hub.Logger.Should().BeOfType<DefaultSentryStructuredLogger>();
14581458
}
14591459

1460+
[Fact]
1461+
public void Logger_EnableAfterCreate_HasNoEffect()
1462+
{
1463+
// Arrange
1464+
Assert.False(_fixture.Options.Experimental.EnableLogs);
1465+
var hub = _fixture.GetSut();
1466+
1467+
// Act
1468+
_fixture.Options.Experimental.EnableLogs = true;
1469+
1470+
// Assert
1471+
hub.Logger.Should().BeOfType<DisabledSentryStructuredLogger>();
1472+
}
1473+
1474+
[Fact]
1475+
public void Logger_DisableAfterCreate_HasNoEffect()
1476+
{
1477+
// Arrange
1478+
_fixture.Options.Experimental.EnableLogs = true;
1479+
var hub = _fixture.GetSut();
1480+
1481+
// Act
1482+
_fixture.Options.Experimental.EnableLogs = false;
1483+
1484+
// Assert
1485+
hub.Logger.Should().BeOfType<DefaultSentryStructuredLogger>();
1486+
}
1487+
14601488
[Fact]
14611489
public void Dispose_IsEnabled_SetToFalse()
14621490
{

test/Sentry.Tests/SentryStructuredLoggerTests.cs

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ public void UseScopeManager()
4848
ScopeManager.GetCurrent().Returns(scopeAndClient);
4949
}
5050

51-
public SentryStructuredLogger GetDefaultSut() => new DefaultSentryStructuredLogger(Hub, ScopeManager, Options, Clock);
52-
public SentryStructuredLogger GetDisabledSut() => new DisabledSentryStructuredLogger();
51+
public SentryStructuredLogger GetSut() => SentryStructuredLogger.Create(Hub, ScopeManager, Options, Clock);
5352
}
5453

5554
private readonly Fixture _fixture;
@@ -64,8 +63,8 @@ public void Create_Enabled_NewDefaultInstance()
6463
{
6564
_fixture.Options.Experimental.EnableLogs = true;
6665

67-
var instance = SentryStructuredLogger.Create(_fixture.Hub, _fixture.ScopeManager, _fixture.Options, _fixture.Clock);
68-
var other = SentryStructuredLogger.Create(_fixture.Hub, _fixture.ScopeManager, _fixture.Options, _fixture.Clock);
66+
var instance = _fixture.GetSut();
67+
var other = _fixture.GetSut();
6968

7069
instance.Should().BeOfType<DefaultSentryStructuredLogger>();
7170
instance.Should().NotBeSameAs(other);
@@ -76,8 +75,8 @@ public void Create_Disabled_CachedDisabledInstance()
7675
{
7776
_fixture.Options.Experimental.EnableLogs.Should().BeFalse();
7877

79-
var instance = SentryStructuredLogger.Create(_fixture.Hub, _fixture.ScopeManager, _fixture.Options, _fixture.Clock);
80-
var other = SentryStructuredLogger.Create(_fixture.Hub, _fixture.ScopeManager, _fixture.Options, _fixture.Clock);
78+
var instance = _fixture.GetSut();
79+
var other = _fixture.GetSut();
8180

8281
instance.Should().BeOfType<DisabledSentryStructuredLogger>();
8382
instance.Should().BeSameAs(other);
@@ -93,7 +92,7 @@ public void Create_Disabled_CachedDisabledInstance()
9392
public void Log_Enabled_CapturesEnvelope(SentryLogLevel level)
9493
{
9594
_fixture.Options.Experimental.EnableLogs = true;
96-
var logger = _fixture.GetDefaultSut();
95+
var logger = _fixture.GetSut();
9796

9897
Envelope envelope = null!;
9998
_fixture.Hub.CaptureEnvelope(Arg.Do<Envelope>(arg => envelope = arg));
@@ -114,7 +113,7 @@ public void Log_Enabled_CapturesEnvelope(SentryLogLevel level)
114113
public void Log_Disabled_DoesNotCaptureEnvelope(SentryLogLevel level)
115114
{
116115
_fixture.Options.Experimental.EnableLogs.Should().BeFalse();
117-
var logger = _fixture.GetDefaultSut();
116+
var logger = _fixture.GetSut();
118117

119118
logger.Log(level, "Template string with arguments: {0}, {1}, {2}, {3}", ["string", true, 1, 2.2], ConfigureLog);
120119

@@ -126,7 +125,7 @@ public void Log_UseScopeManager_CapturesEnvelope()
126125
{
127126
_fixture.UseScopeManager();
128127
_fixture.Options.Experimental.EnableLogs = true;
129-
var logger = _fixture.GetDefaultSut();
128+
var logger = _fixture.GetSut();
130129

131130
Envelope envelope = null!;
132131
_fixture.Hub.CaptureEnvelope(Arg.Do<Envelope>(arg => envelope = arg));
@@ -150,7 +149,7 @@ public void Log_WithBeforeSendLog_InvokesCallback()
150149
configuredLog = log;
151150
return log;
152151
});
153-
var logger = _fixture.GetDefaultSut();
152+
var logger = _fixture.GetSut();
154153

155154
logger.LogTrace("Template string with arguments: {0}, {1}, {2}, {3}", ["string", true, 1, 2.2], ConfigureLog);
156155

@@ -170,7 +169,7 @@ public void Log_WhenBeforeSendLogReturnsNull_DoesNotCaptureEnvelope()
170169
invocations++;
171170
return null;
172171
});
173-
var logger = _fixture.GetDefaultSut();
172+
var logger = _fixture.GetSut();
174173

175174
logger.LogTrace("Template string with arguments: {0}, {1}, {2}, {3}", ["string", true, 1, 2.2], ConfigureLog);
176175

@@ -182,7 +181,7 @@ public void Log_WhenBeforeSendLogReturnsNull_DoesNotCaptureEnvelope()
182181
public void Log_InvalidFormat_DoesNotCaptureEnvelope()
183182
{
184183
_fixture.Options.Experimental.EnableLogs = true;
185-
var logger = _fixture.GetDefaultSut();
184+
var logger = _fixture.GetSut();
186185

187186
logger.LogTrace("Template string with arguments: {0}, {1}, {2}, {3}, {4}", ["string", true, 1, 2.2]);
188187

@@ -198,9 +197,9 @@ public void Log_InvalidFormat_DoesNotCaptureEnvelope()
198197
public void Log_InvalidConfigureLog_DoesNotCaptureEnvelope()
199198
{
200199
_fixture.Options.Experimental.EnableLogs = true;
201-
var logger = _fixture.GetDefaultSut();
200+
var logger = _fixture.GetSut();
202201

203-
logger.LogTrace("Template string with arguments: {0}, {1}, {2}, {3}", ["string", true, 1, 2.2], Throw);
202+
logger.LogTrace("Template string with arguments: {0}, {1}, {2}, {3}", ["string", true, 1, 2.2], static (SentryLog log) => throw new InvalidOperationException());
204203

205204
_fixture.Hub.Received(0).CaptureEnvelope(Arg.Any<Envelope>());
206205
var entry = _fixture.DiagnosticLogger.Entries.Should().ContainSingle().Which;
@@ -215,7 +214,7 @@ public void Log_InvalidBeforeSendLog_DoesNotCaptureEnvelope()
215214
{
216215
_fixture.Options.Experimental.EnableLogs = true;
217216
_fixture.Options.Experimental.SetBeforeSendLog(static (SentryLog log) => throw new InvalidOperationException());
218-
var logger = _fixture.GetDefaultSut();
217+
var logger = _fixture.GetSut();
219218

220219
logger.LogTrace("Template string with arguments: {0}, {1}, {2}, {3}", ["string", true, 1, 2.2]);
221220

@@ -231,22 +230,6 @@ private static void ConfigureLog(SentryLog log)
231230
{
232231
log.SetAttribute("attribute-key", "attribute-value");
233232
}
234-
235-
private static void Throw(SentryLog log)
236-
{
237-
throw new InvalidOperationException();
238-
}
239-
240-
[Fact]
241-
public void CreateDisabled_EvenWhenEnabled_DoesNotCaptureEnvelope()
242-
{
243-
_fixture.Options.Experimental.EnableLogs = true;
244-
var logger = _fixture.GetDisabledSut();
245-
246-
logger.LogTrace("Template string with arguments: {0}, {1}, {2}, {3}", ["string", true, 1, 2.2], ConfigureLog);
247-
248-
_fixture.Hub.Received(0).CaptureEnvelope(Arg.Any<Envelope>());
249-
}
250233
}
251234

252235
file static class AssertionExtensions

0 commit comments

Comments
 (0)