From 0cfc75cd3b10054a6fd0f1e99c6a6b8fdaf2426b Mon Sep 17 00:00:00 2001 From: Sergey Komisarchik Date: Mon, 16 Jan 2017 11:00:16 +0300 Subject: [PATCH] log all events --- .../Extensions/Logging/SerilogLogger.cs | 21 +++++++++++-------- src/Serilog.Extensions.Logging/project.json | 5 ----- .../SerilogLoggerTests.cs | 15 +++++++++++-- .../project.json | 4 ++-- 4 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLogger.cs b/src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLogger.cs index 96115c1..e87a1cf 100644 --- a/src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLogger.cs +++ b/src/Serilog.Extensions.Logging/Extensions/Logging/SerilogLogger.cs @@ -95,21 +95,24 @@ public void Log(LogLevel logLevel, EventId eventId, TState state, Except } } - if (messageTemplate == null && state != null) + if (messageTemplate == null) { - messageTemplate = "{State:l}"; - LogEventProperty stateProperty; - if (logger.BindProperty("State", AsLoggableValue(state, formatter), false, out stateProperty)) - properties.Add(stateProperty); - } + var propertyName = state != null ? "State" : + (formatter != null ? "Message" : null); - if (string.IsNullOrEmpty(messageTemplate)) - return; + if (propertyName != null) + { + messageTemplate = $"{{{propertyName}:l}}"; + LogEventProperty property; + if (logger.BindProperty(propertyName, AsLoggableValue(state, formatter), false, out property)) + properties.Add(property); + } + } if (eventId.Id != 0 || eventId.Name != null) properties.Add(CreateEventIdProperty(eventId)); - var parsedTemplate = _messageTemplateParser.Parse(messageTemplate); + var parsedTemplate = _messageTemplateParser.Parse(messageTemplate ?? ""); var evt = new LogEvent(DateTimeOffset.Now, level, exception, parsedTemplate, properties); logger.Write(evt); } diff --git a/src/Serilog.Extensions.Logging/project.json b/src/Serilog.Extensions.Logging/project.json index 95ec5b4..2ddb489 100644 --- a/src/Serilog.Extensions.Logging/project.json +++ b/src/Serilog.Extensions.Logging/project.json @@ -19,10 +19,8 @@ }, "frameworks": { "net4.5": { - "dependencies": { "System.Runtime": "4.0.0" } }, "net4.6": { - "dependencies": { "System.Runtime": "4.0.20" }, "buildOptions": { "define": [ "ASYNCLOCAL" ] } @@ -30,9 +28,6 @@ "netstandard1.3": { "buildOptions": { "define": ["ASYNCLOCAL"] - }, - "dependencies": { - "System.Threading": "4.0.11" } } } diff --git a/test/Serilog.Extensions.Logging.Tests/SerilogLoggerTests.cs b/test/Serilog.Extensions.Logging.Tests/SerilogLoggerTests.cs index 5dbc4b5..e57d4a8 100644 --- a/test/Serilog.Extensions.Logging.Tests/SerilogLoggerTests.cs +++ b/test/Serilog.Extensions.Logging.Tests/SerilogLoggerTests.cs @@ -152,9 +152,20 @@ public void LogsCorrectMessage() logger.Log(LogLevel.Information, 0, null, null, null); logger.Log(LogLevel.Information, 0, TestMessage, null, null); + logger.Log(LogLevel.Information, 0, null, null, (_, __) => TestMessage); - Assert.Equal(1, sink.Writes.Count); - Assert.Equal(TestMessage, sink.Writes[0].RenderMessage()); + Assert.Equal(3, sink.Writes.Count); + + Assert.Equal(1, sink.Writes[0].Properties.Count); + Assert.Empty(sink.Writes[0].RenderMessage()); + + Assert.Equal(2, sink.Writes[1].Properties.Count); + Assert.True(sink.Writes[1].Properties.ContainsKey("State")); + Assert.Equal(TestMessage, sink.Writes[1].RenderMessage()); + + Assert.Equal(2, sink.Writes[2].Properties.Count); + Assert.True(sink.Writes[2].Properties.ContainsKey("Message")); + Assert.Equal(TestMessage, sink.Writes[2].RenderMessage()); } [Fact] diff --git a/test/Serilog.Extensions.Logging.Tests/project.json b/test/Serilog.Extensions.Logging.Tests/project.json index e7d3188..320de26 100644 --- a/test/Serilog.Extensions.Logging.Tests/project.json +++ b/test/Serilog.Extensions.Logging.Tests/project.json @@ -9,7 +9,6 @@ "keyFile": "../../assets/Serilog.snk" }, "frameworks": { - "net4.6": { }, "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { @@ -21,7 +20,8 @@ "dnxcore50", "portable-net45+win8" ] - } + }, + "net4.6": {} } }