NLog 环境变量配置文件

NLog environment variable config files

我被这个有点简单的问题困住了。我正在尝试制作多个 nlog 配置文件,以便 nlog 可以根据环境变量加载它们。 我已经添加了 nlog.debug.confignlog.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 中的不同设置。

这里是the documentation