如何在.NET Core中的Startup类构造函数中访问AppSettings

时间:2017-03-24 14:45:47

标签: c# asp.net-core serilog

我正在尝试添加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}}。

2 个答案:

答案 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);