gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 19:36:43 26 4
gpt4 key购买 nike

我正在尝试从配置文件中添加 SeriLog 设置,例如最低日志级别和滚动文件路径。标准是像这样硬编码它们:

public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();

Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.RollingFile("C:/LogFiles/log-{Date}.txt")
.CreateLogger();
}

基本上,我需要能够在 Startup 构造函数中访问 appsettings.json 中的值。像这样:

Log.Logger = new LoggerConfiguration()
.MinimumLevel.Is((LogEventLevel)Enum.Parse(typeof(LogEventLevel),
Configuration.GetValue<string>("AppSettings.MinimumLoggingLevel")))
.WriteTo.RollingFile(Configuration.GetValue<string>("AppSettings.RollingFilePath"))

我在另一篇 SO 帖子中找到了 Configuration.GetValue 语法,但它总是返回 null

最佳答案

如果 AppSettings 部分是这样的:

"AppSettings": {
"RollingFilePath": "..."
},

然后将 . 更改为 :

.WriteTo.RollingFile(Configuration.GetValue<string>("AppSettings:RollingFilePath"))

或者使用这个

.WriteTo.RollingFile(Configuration["AppSettings:RollingFilePath"])

关于c# - 如何在 .NET Core 的 Startup 类构造函数中访问 AppSettings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43002478/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com