2012-05-16 8 views
21

estoy usando un proyecto de página web, que añade Nlog de Nuget, y se utiliza la siguiente configuración Nlog:Nlog no crear archivo relativa a proyecto de sitio web

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

me encontré ProcessMonitor y se nota que Nlog está tratando de crear log.txt en la carpeta IISExpress en lugar de la carpeta de proyecto de mi sitio web.

C: \ Archivos de programa (x86) \ IIS Express \ LOG.TXT

¿Cómo puedo hacer Nlog poner mi archivo de registro, log.txt, en la carpeta de mi proyecto de sitio web en lugar de la carpeta IISExpress?

Respuesta

42

Lo descubrimos.

Añadir ${basedir} al nombre de archivo

filename="${basedir}/log.txt" 
+0

Por cierto, esto no debería ser necesaria más; a partir de la versión 4.3, las rutas relativas deben calcularse como relativas a '$ {basedir}'. Tempus Fugit. –

Cuestiones relacionadas