nlog中不同环境的Base Directory路径
Base Directory path of different environments in nlog
我有 .net 核心 web api 项目,具有生产、阶段和开发环境。我在 nlog 目标的文件名中使用了 {baseDir}
,但是当我 运行 项目时,它将日志文件存储在 bin\netcoreapp3.1\netcoreapp3.1
文件夹中。
我有一个文件夹 Logs
,我想将日志存储在该文件夹中。
在我想要的所有环境中都一样。
任何人都知道该怎么做,请帮助我!!
了解更多详情:
nlog.config
<variable name="DefaultLayout" value="${longdate} ${processid} ${uppercase:${level}} ${logger:shortName=true} ${environment-user} ${local-ip} ${message} "/>
<targets async="true">
<target xsi:type="File" name="file" layout="${DefaultLayout}" fileName="${baseDir}\log-${shortdate}.log" />
</targets>
谢谢!!
{baseDir}
是代码执行的目录,所以你得到的是正确的。
如果您想使用 ASP.NET 核心应用程序的内容根路径,您需要使用 ${aspnet-appbasepath}
- ref.
您可以指定为fileName="${aspnet-appbasepath}\Logs\log-${shortdate}.log"
。
来自文档:
Introduced with NLog.Web.AspNetCore v4.5.0 and NLog.Web v4.5.2
确保您针对的是相应的版本,否则您将无法使用 ${aspnet-appbasepath}
我有 .net 核心 web api 项目,具有生产、阶段和开发环境。我在 nlog 目标的文件名中使用了 {baseDir}
,但是当我 运行 项目时,它将日志文件存储在 bin\netcoreapp3.1\netcoreapp3.1
文件夹中。
我有一个文件夹 Logs
,我想将日志存储在该文件夹中。
在我想要的所有环境中都一样。
任何人都知道该怎么做,请帮助我!!
了解更多详情:
nlog.config
<variable name="DefaultLayout" value="${longdate} ${processid} ${uppercase:${level}} ${logger:shortName=true} ${environment-user} ${local-ip} ${message} "/>
<targets async="true">
<target xsi:type="File" name="file" layout="${DefaultLayout}" fileName="${baseDir}\log-${shortdate}.log" />
</targets>
谢谢!!
{baseDir}
是代码执行的目录,所以你得到的是正确的。
如果您想使用 ASP.NET 核心应用程序的内容根路径,您需要使用 ${aspnet-appbasepath}
- ref.
您可以指定为fileName="${aspnet-appbasepath}\Logs\log-${shortdate}.log"
。
来自文档:
Introduced with NLog.Web.AspNetCore v4.5.0 and NLog.Web v4.5.2
确保您针对的是相应的版本,否则您将无法使用 ${aspnet-appbasepath}