NLog内部日志不能与ASP.Net MVC一起使用

时间:2012-02-24 09:56:19

标签: asp.net-mvc nlog

我遇到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”运行良好,但是如果我将它设置为例如“D:/NLog.log”,则internalLogFile才有效。

知道为什么会这样吗?

4 个答案:

答案 0 :(得分:12)

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

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

尝试使用“.. \ App_Data \ NLog.log”

之类的相对路径

答案 1 :(得分:1)

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

以下对我有用。

  1. 在某处创建一个文件夹 - 例如您c:驱动器的路线,例如c:\logs
  2. 修改此文件夹的权限并完全控制所有人
  3. 设置您的nlog配置:internalLogFile="C:\logs\nlog.txt"
  4. 请记住要自行清理,不要在

    上留下具有这些权限的目录

答案 2 :(得分:0)

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

答案 3 :(得分:0)

NLog版本。 4.6添加对环境变量(如%appdata%或%HOME%)的支持,并在FROM python:3.7-alpine中使用以下基本布局:

  • $ {currentdir}
  • $ {basedir}
  • $ {tempdir}

NLog版本。 4.7还添加了以下内容:

  • $ {processdir}

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