【问题标题】:Base Directory path of different environments in nlognlog中不同环境的基本目录路径
【发布时间】:2020-10-09 08:36:06
【问题描述】:

我有一个带有生产、阶段和开发环境的 .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>

谢谢!!

【问题讨论】:

    标签: asp.net-core logging nlog


    【解决方案1】:

    {baseDir} 是执行代码的目录,所以你得到的是正确的。

    如果你想使用 ASP.NET Core 应用的内容根路径,你需要使用${aspnet-appbasepath} - ref

    您可以将其指定为fileName="${aspnet-appbasepath}\Logs\log-${shortdate}.log"

    来自文档:

    与 NLog.Web.AspNetCore v4.5.0 和 NLog.Web v4.5.2 一起引入

    确保您针对的是相应版本,否则您将无法使用${aspnet-appbasepath}

    【讨论】:

      猜你喜欢
      • 2012-07-02
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-25
      • 2012-10-09
      相关资源
      最近更新 更多