Does this issue relate to a new feature or an existing bug?
What version of Serilog.Sinks.Elasticsearch is affected? Please list the related NuGet package.6.3.0
What is the target framework and operating system? See target frameworks & net standard matrix.
Please describe the current behavior?
If I run code like this:
using(logger.BeginScope("My text")) using(logger.BeginScope(new Dictionary<string, string>{ { "Property 1", "Value 1" } } logger.LogInformation("Hi");
I will get an error. In ES, the series of scope values are simply added as an array, so ES will figure out some type to support it. In our case, we had a number of scopes that were Dictionary<string, string>
, so the Scope
property ended up being object
.
Then later, we had the string like the one above, and we got an error like this (string cannot be converted to Object
):
2018-07-25T11:19:40.7254631Z Failed to store event with template 'Getting {AssemblyName}' into Elasticsearch. Elasticsearch reports for index logstash-2018.07.25 the following: {"type":"mapper_parsing_exception","reason":"failed to parse [fields.Scope]","caused_by":{"type":"illegal_state_exception","reason":"Can't get text on a START_OBJECT at 1:392"}}
We found the issue as we in one place used the Dictionary<string, string>
and elsewhere used strings - so some logs would simply not be logged (and as these are scopes, it can be whole series of logs -- anything within the scope)..
The bug also goes the other way around. If the Scope value is initially some simple type like a string, ES will auto-map to a text
property, and then any log with a scope value that is a complex value will fail.
Please describe the expected behavior?
So. I know that using Dictionary<string, object>
will "work as expected", as it doesn't add to Scope
but adds the individual properties instead.
Could we either:
Dictionary<string, T>
specially, so the T
type is always handled (converted to string?)RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4