NLog环境变量配置文件
本文关键字:配置文件 环境变量 NLog | 更新日期: 2023-09-27 18:13:19
我被这个简单的问题卡住了。我试图使多个nlog配置文件,以便nlog可以根据环境变量加载它们。我已经添加了nlog.debug.config
, nlog.production.config
,并将ASPNETCORE_ENVIRONMENT
更改为相应的值,但到目前为止还没有运气。我想事情没那么简单。我可以在Startup.cs文件中设置它,像这样:
env.ConfigureNLog("nlog.environment.config");
但是有一些自动的方法吗?
使用IHostingEnvironment.EnvironmentName
在运行时获取环境名称和构建文件名:
env.ConfigureNLog($"nlog.{env.EnvironmentName}.config");
,不要忘记区分大小写。
公认的答案是好的,但NLog也提供了一种标准的方法。. net Core appsettings.json
文件已经是特定于环境的,你可以在这些文件中配置NLog。
例如,在appsettings.Staging.json
中可以有一个"NLog"
元素,而在appsettings.Production.json
中可以有一个不同的设置。
NLog.Web。AspNetCore v4.9.3增加了加载NLog的支持。使用LoadConfigurationFromAppSettings()
匹配环境变量的配置。
它将根据环境变量DOTNET_ENVIRONMENT
自动从nlog.Production.config
加载。
var logger = NLog.LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
参见:https://github.com/NLog/NLog/wiki/Environment-specific-NLog-Logging-Configuration