I configure the output format in appsettings.json, but it does not work:
{
"Serilog": {
"WriteTo": [
{
"Name": "Console",
"Args": {
"formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
"outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u3}] [{SourceContext:l}] {Message:lj} {NewLine}{Exception}"
}
}
]
}
}
var builder = Host.CreateDefaultBuilder(args);
builder.ConfigureLogging(logBuilder =>
{
logBuilder.ClearProviders();
});
builder.UseSerilog((hostingContext, loggerConfiguration) =>
loggerConfiguration.ReadFrom.Configuration(hostingContext.Configuration)
);
The output is:
[2023-04-21 10:50:33 INF] [Microsoft.Hosting.Lifetime] Application started. Press Ctrl+C to shut down.
[2023-04-21 10:50:33 INF] [Microsoft.Hosting.Lifetime] Hosting environment: Local
[2023-04-21 10:50:33 INF] [Microsoft.Hosting.Lifetime] Content root path: C:\Users\chiwenjun\Documents\Sources\emoney_com\mqproxy\src\MQProxy.Host
[2023-04-21 10:50:34 INF] [Microsoft.Hosting.Lifetime] Application is shutting down...
But, if I configure the format in code, it will work:
var builder = Host.CreateDefaultBuilder(args);
builder.ConfigureLogging(logBuilder =>
{
logBuilder.ClearProviders();
});
builder.UseSerilog((hostingContext, loggerConfiguration) =>
{
loggerConfiguration.WriteTo.Console(new JsonFormatter());
}
);
The output is:
{"Timestamp":"2023-04-21T10:52:13.9108077+08:00","Level":"Information","MessageTemplate":"Application started. Press Ctrl+C to shut down.","Properties":{"SourceContext":"Microsoft.Hosting.Lifetime"}}
{"Timestamp":"2023-04-21T10:52:13.9110602+08:00","Level":"Information","MessageTemplate":"Hosting environment: {EnvName}","Properties":{"EnvName":"Local","SourceContext":"Microsoft.Hosting.Lifetime"}}
{"Timestamp":"2023-04-21T10:52:13.9111968+08:00","Level":"Information","MessageTemplate":"Content root path: {ContentRoot}","Properties":{"ContentRoot":"C:\\Users\\chiwenjun\\Documents\\Sources\\emoney_com\\mqproxy\\src\\MQProxy
.Host","SourceContext":"Microsoft.Hosting.Lifetime"}}
{"Timestamp":"2023-04-21T10:52:15.9303377+08:00","Level":"Information","MessageTemplate":"Application is shutting down...","Properties":{"SourceContext":"Microsoft.Hosting.Lifetime"}}
I use .NET 7, installed packages:
<PackageReference Include="Serilog.Extensions.Hosting" Version="5.0.1" />
<PackageReference Include="Serilog.Formatting.Elasticsearch" Version="9.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.4.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
<PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageReference Include="Serilog.Sinks.Http" Version="8.0.0" />
How do I fix this issue, Thanks!