serilog-sinks-spectre
serilog-sinks-spectre copied to clipboard
Crash for EF Core logs: System.InvalidOperationException: Encountered malformed markup tag at position 16.
The Sink can't output EF Core logs that contains SQL queries, I guess it might be because brackets are used?
###Stacktrace
2024-05-22T08:35:51.5205282Z Caught exception while emitting to sink Serilog.Sinks.Spectre.SpectreConsoleSink: System.InvalidOperationException: Encountered malformed markup tag at position 16.
at Spectre.Console.MarkupTokenizer.ReadMarkup() in /_/src/Spectre.Console/Internal/Text/Markup/MarkupTokenizer.cs:line 183
at Spectre.Console.MarkupTokenizer.MoveNext() in /_/src/Spectre.Console/Internal/Text/Markup/MarkupTokenizer.cs:line 27
at Spectre.Console.MarkupParser.Parse(String text, Style style) in /_/src/Spectre.Console/Internal/Text/Markup/MarkupParser.cs:line 19
at Spectre.Console.Markup..ctor(String text, Style style) in /_/src/Spectre.Console/Widgets/Markup.cs:line 42
at Serilog.Sinks.Spectre.Renderers.MessageTemplateOutputTokenRenderer.Render(LogEvent logEvent)+MoveNext()
at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
at System.Collections.Generic.SparseArrayBuilder`1.ReserveOrAdd(IEnumerable`1 items)
at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.ToArray()
at Serilog.Sinks.Spectre.SpectreConsoleSink.Emit(LogEvent logEvent)
at Serilog.Core.Sinks.SafeAggregateSink.Emit(LogEvent logEvent)
This is how the log is printed using the normal Console Sink:
[10:32:49 INF] Executed DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT [p].[Id], [p].[ChangedBy], [p].[ChangedOn], [p].[CreatedBy], [p].[CreatedOn], [p].[GroupId], [p].[Name], [t].[CategoriesId], [t].[ParametersId], [t].[Id], [t].[Name]
FROM [Parameters] AS [p]
LEFT JOIN (
SELECT [c].[CategoriesId], [c].[ParametersId], [c0].[Id], [c0].[Name]
FROM [CategoryParameter] AS [c]
INNER JOIN [Categories] AS [c0] ON [c].[CategoriesId] = [c0].[Id]