ecs-dotnet
ecs-dotnet copied to clipboard
[FEATURE] Support passing prepared EcsDocument object to the logging API
ECS integration/library project: Elastic.CommonSchema.Serilog
Is your feature request related to a problem? Please describe.
The current implementation of Elastic.CommonSchema.Serilog only supports generating EcsDocument objects on the fly from a message template. That however means that every property I want modified in the output EcsDocument object needs to be present in the message template. While this works great for simple EcsDocument objects, it doesn't scale well when I need to:
- modify a lot properties in the generated
EcsDocumentobject - include non-ECS properties that I want to have outside the
$.metadatadictionary
Describe the solution you'd like
In addition to accepting MEL message template with known template properties to manipulate the generated EcsDocument (as shown here), I would like to be able to pass prepared EcsDocument object to the logging API and have Elastic.CommonSchema.Serilog library serialize it as JSON into Serilog.
Optionally (when configured so), I would also like Elastic.CommonSchema.Serilog to enrich the prepared EcsDocument object with contextual data like:
- source file path
- source file line
- method name
- Host fields
- Process fields
- etc.