Skip to content

Commit 420dd85

Browse files
authored
Merge pull request #67 from skomis-mm/issue928
Fix issue 928 (Missed EF events)
2 parents a5dc176 + 0cfc75c commit 420dd85

File tree

4 files changed

+27
-18
lines changed

4 files changed

+27
-18
lines changed

src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLogger.cs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,21 +95,24 @@ public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Except
9595
}
9696
}
9797

98-
if (messageTemplate == null && state != null)
98+
if (messageTemplate == null)
9999
{
100-
messageTemplate = "{State:l}";
101-
LogEventProperty stateProperty;
102-
if (logger.BindProperty("State", AsLoggableValue(state, formatter), false, out stateProperty))
103-
properties.Add(stateProperty);
104-
}
100+
var propertyName = state != null ? "State" :
101+
(formatter != null ? "Message" : null);
105102

106-
if (string.IsNullOrEmpty(messageTemplate))
107-
return;
103+
if (propertyName != null)
104+
{
105+
messageTemplate = $"{{{propertyName}:l}}";
106+
LogEventProperty property;
107+
if (logger.BindProperty(propertyName, AsLoggableValue(state, formatter), false, out property))
108+
properties.Add(property);
109+
}
110+
}
108111

109112
if (eventId.Id != 0 || eventId.Name != null)
110113
properties.Add(CreateEventIdProperty(eventId));
111114

112-
var parsedTemplate = _messageTemplateParser.Parse(messageTemplate);
115+
var parsedTemplate = _messageTemplateParser.Parse(messageTemplate ?? "");
113116
var evt = new LogEvent(DateTimeOffset.Now, level, exception, parsedTemplate, properties);
114117
logger.Write(evt);
115118
}

src/Serilog.Extensions.Logging/project.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,15 @@
1919
},
2020
"frameworks": {
2121
"net4.5": {
22-
"dependencies": { "System.Runtime": "4.0.0" }
2322
},
2423
"net4.6": {
25-
"dependencies": { "System.Runtime": "4.0.20" },
2624
"buildOptions": {
2725
"define": [ "ASYNCLOCAL" ]
2826
}
2927
},
3028
"netstandard1.3": {
3129
"buildOptions": {
3230
"define": ["ASYNCLOCAL"]
33-
},
34-
"dependencies": {
35-
"System.Threading": "4.0.11"
3631
}
3732
}
3833
}

test/Serilog.Extensions.Logging.Tests/SerilogLoggerTests.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,20 @@ public void LogsCorrectMessage()
152152

153153
logger.Log<object>(LogLevel.Information, 0, null, null, null);
154154
logger.Log(LogLevel.Information, 0, TestMessage, null, null);
155+
logger.Log<object>(LogLevel.Information, 0, null, null, (_, __) => TestMessage);
155156

156-
Assert.Equal(1, sink.Writes.Count);
157-
Assert.Equal(TestMessage, sink.Writes[0].RenderMessage());
157+
Assert.Equal(3, sink.Writes.Count);
158+
159+
Assert.Equal(1, sink.Writes[0].Properties.Count);
160+
Assert.Empty(sink.Writes[0].RenderMessage());
161+
162+
Assert.Equal(2, sink.Writes[1].Properties.Count);
163+
Assert.True(sink.Writes[1].Properties.ContainsKey("State"));
164+
Assert.Equal(TestMessage, sink.Writes[1].RenderMessage());
165+
166+
Assert.Equal(2, sink.Writes[2].Properties.Count);
167+
Assert.True(sink.Writes[2].Properties.ContainsKey("Message"));
168+
Assert.Equal(TestMessage, sink.Writes[2].RenderMessage());
158169
}
159170

160171
[Fact]

test/Serilog.Extensions.Logging.Tests/project.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
"keyFile": "../../assets/Serilog.snk"
1010
},
1111
"frameworks": {
12-
"net4.6": { },
1312
"netcoreapp1.0": {
1413
"dependencies": {
1514
"Microsoft.NETCore.App": {
@@ -21,7 +20,8 @@
2120
"dnxcore50",
2221
"portable-net45+win8"
2322
]
24-
}
23+
},
24+
"net4.6": {}
2525
}
2626
}
2727

0 commit comments

Comments
 (0)