Ответ 1
Вы не можете использовать средства рендеринга ${...} в свойстве internalLogFile. Они предназначены только для целевого макета:
<target layout="${...}" />
Попробуйте использовать относительный путь, например "..\App_Data\NLog.log"
У меня есть проблема с 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"
Атрибут internalLogFile
должен быть установлен в абсолютный путь, и исполняющая сборка должна иметь разрешение на запись этого абсолютного пути.
Следующие работали для меня.
c:
, например. c:\logs
internalLogFile="C:\logs\nlog.txt"
Не забудьте очистить после себя и не оставлять каталог с такими разрешениями на
from эта ссылка Я думаю, что путь абсолютный