【发布时间】:2020-03-27 08:51:33
【问题描述】:
我的 appsettings.json 看起来像这样:
{
"Serilog": {
"Using": [ "Serilog.Sinks.File" ],
"MinimumLevel": "Debug",
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "%APPDATA%\\FancyProject\\logs\\RR.log",
"formatter": "Serilog.Formatting.Json.JsonFormatter",
"rollingInterval": "Day",
"retainedFileCountLimit": 20,
"buffered": false
}
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId", "WithExceptionDetails" ],
"Properties": {
"Application": "SampleName"
}
}
}
加载设置:
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
我想在我的解决方案中为多个项目使用相同的配置文件,但使用不同的应用程序名称以区分服务。
有没有办法在加载配置时更改代码中的应用程序名称(我的配置中的“SampleName”)?
【问题讨论】:
-
上面的配置怎么用,是asp.net core app吗?
-
@PavelAnikhouski 这是一个 .NET 4.6.2 应用程序
-
但是
appsettings.json是针对 .NET Core 应用的,你可能应该在这里使用基于 xml 的配置 -
@PavelAnikhouski Serilog.Settings.Configuration 可从 .NET 4.6.1 获得。我添加了用于加载 appsettings.json 的代码。
-
@PavelAnikhouski 感谢您的代码。它有效并解决了我的问题。你介意转发一下吗?
标签: c# logging .net-core serilog