我正在尝试添加SeriLog设置,例如来自配置文件的最小日志级别和滚动文件路径。标准是对它们进行硬编码:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Is((LogEventLevel)Enum.Parse(typeof(LogEventLevel),
Configuration.GetValue<string>("AppSettings.MinimumLoggingLevel")))
.WriteTo.RollingFile(Configuration.GetValue<string>("AppSettings.RollingFilePath"))
基本上,我需要能够在Startup构造函数中访问appsettings.json中的值。像这样:
Configuration.GetValue
我在另一个SO帖子中找到了null
语法,但它始终返回{{1}}。
答案 0 :(得分:4)
如果AppSettings
部分是这样的:
"AppSettings": {
"RollingFilePath": "..."
},
然后将.
更改为:
.WriteTo.RollingFile(Configuration.GetValue<string>("AppSettings:RollingFilePath"))
或使用此
.WriteTo.RollingFile(Configuration["AppSettings:RollingFilePath"])
答案 1 :(得分:3)
我的appsettings.json看起来像这样:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
要访问某个值,我可以使用以下内容:
var IncludeScopes = Configuration.GetValue<bool>("Logging:IncludeScopes", true);