【问题标题】:NLog internal log not working with ASP.Net MVCNLog 内部日志不适用于 ASP.Net MVC
【发布时间】:2021-10-12 08:02:01
【问题描述】:

我在使用此配置记录其内部日志时遇到了 NLog 问题

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  throwExceptions="true"
  internalLogFile="${basedir}/App_Data/NLog.log"
  internalLogLevel="Trace">

   <targets>
      <target name="debug"
              xsi:type="File" 
              fileName="${basedir}/App_Data/Site.log" />
   </targets>

   <rules>
      <logger name="*"
              writeTo="debug" />
   </rules>
</nlog>

目标“debug”运行良好,但 internalLogFile 仅在我将其设置为“D:/NLog.log”示例时才有效。

知道为什么会这样吗?

【问题讨论】:

  • 注意;默认路径是安装 IISExpress 的位置。如果您指定:InternalLogFile="nLogError.txt"。然后(至少在我的 PC 上)它会尝试写入“C:\Program Files (x86)\IIS Express\nlogExceptions.txt”。可能存在权限问题。

标签: asp.net-mvc nlog


【解决方案1】:

您不能在 internalLogFile 属性中使用布局渲染器 ${...}。它们仅用于目标的布局:

<target layout="${...}" />

尝试使用“..\App_Data\NLog.log”等相对路径

更新 NLog 4.6 启用了一些simple layouts

【讨论】:

  • 感谢您的回答。相对路径不行,看来需要绝对路径。
  • 你错了..我在内部日志中使用 ${} 并且它工作正常!! @Swell 你可以在内部日志文件中使用 ${..}
  • internalLogFile="${specialfolder:folder=CommonApplicationData}/Logs/Nlog/${shortdate}/Nlog-Internal.log"
  • 来自 NLog 合作者的非常好的评论为什么这不是一个好主意 internalLogFile: NLog variables
  • 记录在案,提到的评论是“ 304NotModified 于 2015 年 2 月 18 日发表评论 | 正如 Stackoverflow 的回答:这是不可能的,也是不需要的。内部日志文件应该尽可能稳定(所以不花哨的功能)。另外我认为感谢内部日志只应在极少数情况下使用。”
【解决方案2】:

internalLogFile 属性需要设置为绝对路径,并且正在执行的程序集需要具有写入该绝对路径的权限。

以下内容对我有用。

  1. 在某处创建一个文件夹 - 例如c: 驱动器的路线,例如c:\logs
  2. 编辑此文件夹的权限,让所有人完全控制
  3. 设置您的 nlog 配置:internalLogFile="C:\logs\nlog.txt"

记得自己清理,不要留下具有这些权限的目录

【讨论】:

  • 谢谢小费。这对我有用。 .NET Framework 似乎需要绝对路径,但 ASP.NET Core 允许使用相对路径。
【解决方案3】:

NLog 版本。 4.6 添加对 %appdata% 或 %HOME% 等环境变量的支持,并在 internalLogFile= 中使用这些基本布局:

  • ${当前目录}
  • ${basedir}
  • ${tempdir}

NLog 版本。 4.7还添加了这个:

  • ${进程目录}

另请参阅:https://github.com/NLog/NLog/wiki/Internal-Logging

【讨论】:

    【解决方案4】:

    来自this link我认为路径是绝对的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-20
      • 2020-07-08
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 2021-06-29
      • 2021-04-07
      相关资源
      最近更新 更多