Skip to content
This repository was archived by the owner on Dec 13, 2018. It is now read-only.

Commit f18466d

Browse files
committed
Fix EventLogger in .NET 4.5.2
1 parent b1e5788 commit f18466d

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

src/Microsoft.Extensions.Logging.EventSource/EventSourceLogger.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public EventSourceLogger(string categoryName, int factoryID, LoggingEventSource
4444

4545
public bool IsEnabled(LogLevel logLevel)
4646
{
47+
_eventSource.VerifyLevel();
4748
return logLevel >= Level;
4849
}
4950

src/Microsoft.Extensions.Logging.EventSource/LoggingEventSource.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ public class Keywords
106106
private string _filterSpec;
107107
private EventSourceLoggerProvider _loggingProviders;
108108
private object _lockObj = new object();
109+
private bool _checkLevel;
109110

110111
internal EventSourceLoggerProvider CreateLoggerProvider()
111112
{
@@ -226,9 +227,19 @@ protected override void OnEventCommand(EventCommandEventArgs command)
226227
private void SetFilterSpec(string filterSpec)
227228
{
228229
_filterSpec = filterSpec;
229-
for (var cur = _loggingProviders; cur != null; cur = cur.Next)
230+
_checkLevel = true;
231+
}
232+
233+
[NonEvent]
234+
internal void VerifyLevel()
235+
{
236+
if (_checkLevel)
230237
{
231-
cur.SetFilterSpec(filterSpec);
238+
for (var cur = _loggingProviders; cur != null; cur = cur.Next)
239+
{
240+
cur.SetFilterSpec(_filterSpec);
241+
}
242+
_checkLevel = false;
232243
}
233244
}
234245
}

test/Microsoft.Extensions.Logging.EventSource.Test/EventSourceLoggerTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public void Logs_AsExpected_WithDefaults()
2323
factory.AddEventSourceLogger();
2424

2525
var listenerSettings = new TestEventListener.ListenerSettings();
26-
listenerSettings.Keywords = EventKeywords.None;
26+
listenerSettings.Keywords = (EventKeywords)(-1);
2727
listenerSettings.FilterSpec = null;
2828
listenerSettings.Level = default(EventLevel);
2929
testListener.EnableEvents(listenerSettings);

0 commit comments

Comments
 (0)