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");

但是有一些自动的方法吗?

NLog环境变量配置文件

使用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