2012-02-24 7 views
10

У меня есть проблема с NLog для регистрации его внутренних журналов с этой конфигурациейNLog внутреннего журнал не работает с ASP.Net MVC

<?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».

Любая идея, почему это происходит?

+0

Примечание; путь по умолчанию - это место, где установлен IISExpress. Если вы укажете: InternalLogFile = "nLogError.txt". Затем (по крайней мере, на моем ПК) он попытается написать «C: \ Program Files (x86) \ IIS Express \ nlogExceptions.txt». У кого могут быть проблемы с разрешением. – OzBob

ответ

12

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

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

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

+1

Спасибо за ответ. Относительный путь не работает, кажется, что ему нужен абсолютный путь. – Swell

+0

вы ошибаетесь. Я использую $ {} во внутреннем протоколировании, и он отлично работает !! @Swell u можно использовать $ {..} во внутреннем файле журнала – Neel

+0

@Neel Ну, возможно, это изменилось через 2 года :) Не могли бы вы показать свой NLog.config? – kolbasov

1

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

Следующие работали для меня.

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

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

Смежные вопросы