2012-02-24 17 views
10

tengo un problema con Nlog para registrar sus registros internos con esta configuraciónregistro interno Nlog que no trabajan con 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> 

El objetivo de "depuración" está funcionando bien, pero el internalLogFile está trabajando solamente si Lo configuré, por ejemplo, como "D: /NLog.log".

¿Alguna idea de por qué sucede esto?

+0

Nota; la ruta predeterminada es donde está instalado IISExpress. Si especifica: InternalLogFile = "nLogError.txt". Luego (al menos en mi PC) intentará y escribirá en "C: \ Archivos de programa (x86) \ IIS Express \ nlogExceptions.txt". Que puede tener problemas de permisos. – OzBob

Respuesta

12

No puede usar los visualizadores de diseño $ {...} en la propiedad internalLogFile. Son para el diseño de un objetivo solamente:

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

Trate de usar ruta relativa como ".. \ App_Data \ NLog.log"

+1

Gracias por la respuesta. La ruta relativa no está funcionando, parece que necesita una ruta absoluta. – Swell

+0

está equivocado ... ¡estoy usando $ {} en el registro interno y funciona bien! @Swell puede usar $ {..} en el archivo de registro interno – Neel

+0

@Neel Bueno, podría haber cambiado después de 2 años :) ¿Podría mostrar su NLog.config? – kolbasov

1

El atributo internalLogFile debe establecerse en una ruta absoluta y el ensamblaje en ejecución debe tener permiso para escribir en esa ruta absoluta.

Lo siguiente funcionó para mí.

  1. Cree una carpeta en alguna parte, p. la ruta de su disco c:, p. c:\logs
  2. Editar los permisos de esta carpeta y darle el control total de todos
  3. Ajuste su configuración Nlog: internalLogFile="C:\logs\nlog.txt"

Recuerde que limpiar después de ti mismo y no dejar un directorio con ese tipo de permisos en

Cuestiones relacionadas