Asp.net-Mvc

NLog 內部日誌不適用於 ASP.Net MVC

  • October 12, 2021

我對使用此配置記錄其內部日誌的 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>

目標“調試”執行良好,但 internalLogFile 僅在我將其設置為“D:/NLog.log”時才有效。

知道為什麼會這樣嗎?

您不能在 internalLogFile 屬性中使用佈局渲染器 ${…} 。它們僅用於目標的佈局:

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

嘗試使用像“..\App_Data\NLog.log”這樣的相對路徑

更新NLog 4.6 啟用了一些簡單的佈局

internalLogFile屬性需要設置為絕對路徑,並且執行程序集需要具有寫入該絕對路徑的權限。

以下對我有用。

  1. 在某處創建一個文件夾 - 例如您的c:驅動器的路線,例如c:\logs
  2. 編輯此文件夾的權限並將完全控制權交給所有人
  3. 設置你的 nlog 配置:internalLogFile="C:\logs\nlog.txt"

記住要自己清理,不要留下具有這些權限的目錄

引用自:https://stackoverflow.com/questions/9428724