Reputation: 3798
I have the following appsettings.json configuration:
{
"Serilog": {
"Using": [],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"Enrich": [ "FromLogContext", "WithMachineName" ],
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "C:\\Logs\\log.json",
"formatter": "Serilog.Formatting.Elasticsearch.ElasticsearchJsonFormatter, Serilog.Formatting.Elasticsearch"
}
}
]
}
}
What I am trying to configure in the above appsettings.json file would be represented in C# as something like this:
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.WriteTo.File(new ElasticsearchJsonFormatter(inlineFields:true, renderMessageTemplate: false), @"C:\logs\log.json")
.CreateLogger();
I need to set "inlineFields" equal to true and "renderMessageTemplate" equal to false as overrides in my appsettings.json file on the ElasticsearchJsonFormatter instance. Is there a way to do that in the appsettings.json file so that I can keep my configuration out of C#?
Upvotes: 7
Views: 7707
Reputation: 4535
As said in the link given in @xneg's response, it wasn't possible back in the days, but as @leftiness said, it's possible since v3.3.0!
I successfully used it with these appsettings:
"Serilog": {
"Using": [ "Serilog.Sinks.Console" ],
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "Console",
"Args": {
"formatter": {
"type": "Serilog.Formatting.Elasticsearch.ElasticsearchJsonFormatter, Serilog.Formatting.Elasticsearch",
"renderMessage": true
}
}
}
],
"Enrich": [ "FromLogContext" ]
}
Upvotes: 1
Reputation: 133
They added this feature in Serilog.Settings.Configuration -v 3.3.0-dev-00291.
Serilog__WriteTo__Console__Name=Console
Serilog__WriteTo__Console__Args__formatter__type="Serilog.Templates.ExpressionTemplate, Serilog.Expressions"
Serilog__WriteTo__Console__Args__formatter__template="[{@t:HH:mm:ss} {@l:u3} {Coalesce(SourceContext, '<none>')}] {@m}\n{@x}"
[22:38:40 INF My.Foo.FooClient] HELLO WORLD
links
Upvotes: 3
Reputation: 1358
I asked this question on GitHub: https://github.com/serilog/serilog-sinks-file/issues/138
No way :(
Upvotes: 4