NLog внутренний журнал не работает с ASP.Net MVC


У меня есть проблема с 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 работает только в том случае, если я установил его для exemple в "D:/NLog.бревно".

Есть идеи, почему это происходит?

3 11

3 ответа:

Вы не можете использовать визуализаторы макета ${...} в свойстве internalLogFile. Они предназначены только для макета цели:

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

Попробуйте использовать относительный путь, как "..\App_Data\NLog.журнал "

Атрибут internalLogFile должен быть установлен в абсолютный путь, и исполняющая сборка должна иметь разрешение на запись в этот абсолютный путь.

Для меня сработало следующее.

  1. создайте где-нибудь папку - например, маршрут вашего диска c:, например c:\logs
  2. отредактируйте разрешения этой папки и предоставьте полный контроль всем
  3. задайте конфигурацию nlog: internalLogFile="C:\logs\nlog.txt"

Не забывайте убирать за собой и не оставляйте каталог с такими сортами разрешений на

Из этой связи я думаю, что путь является абсолютным