Nlog не создает файл относительно проекта веб-сайта

Я использую проект веб-сайта, я добавил Nlog из Nuget и использовал следующую конфигурацию NLog:

<?xml version="1.0" encoding="utf-8" ?>
<nlog autoReload="true" 
      throwExceptions="true" 
      xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <targets>
        <target name="logfile" xsi:type="File" fileName="log.txt" />
    </targets>

    <rules>
        <logger name="*" minlevel="Info" writeTo="logfile" />
    </rules>
</nlog>

Я запустил ProcessMonitor, и он показывает, что Nlog пытается создать log.txt в папке IISExpress вместо папки проекта моего веб-сайта.

C:\Program Files (x86)\IIS Express\log.txt

Как я могу заставить NLog поместить мой файл журнала log.txt в папку проекта моего веб-сайта вместо папки IISExpress?


person FarFigNewton    schedule 16.05.2012    source источник


Ответы (1)


Мы поняли это.

Добавьте ${basedir} к имени файла

filename="${basedir}/log.txt"
person FarFigNewton    schedule 16.05.2012
comment
Впрочем, в этом больше нет необходимости; начиная с версии 4.3 относительные пути должны вычисляться относительно ${basedir}. Темпус беглец. - person Jon Hanna; 18.10.2017
comment
а в настольном приложении, если вы пропустите некоторые ..\ в начале (например, Logs\mylog.log, а не ..\Logs\mylog.log), он попадет в C:\Users\username\AppData\ местный\ вздох - person smirkingman; 15.01.2021