practices netcore logger implement disable configurar best logging nlog

logging - netcore - Usar el directorio de datos de la aplicación en la ruta del archivo NLog



nlog levels (4)

La respuesta aceptada no crea el archivo de registro en el directorio AppData / Local , sino que crea el archivo de registro en el directorio AppData / Roaming . Según lo solicitado por el OP para crear el archivo de registro en AppData / Local , debe usar LocalApplicationData en la ruta de la carpeta especial.

<target name="logfile" xsi:type="File" fileName="${specialfolder:folder=LocalApplicationData}/ApplicationLogs/LogFile.txt"/>

¿Cómo puedo configurar el target en el archivo NLog.config para crear el archivo de registro en el directorio de datos de la aplicación del usuario?

A continuación se muestra la ubicación deseada del archivo.

C: / Users / userid / AppData / Local ... / LogFile.txt

Intenté establecer el nombre de fileName de las siguientes maneras sin ningún éxito.

  • target name="logfile" xsi:type="File" fileName="%APPDATA%/.../LogFile.txt"

  • target name="logfile" xsi:type="File" fileName="${APPDATA}/.../LogFile.txt"

  • target name="logfile" xsi:type="File" fileName="${%APPDATA%}/.../LogFile.txt"


Puedes lograrlo creando un objetivo como este:

<target name="logfile" xsi:type="File" fileName="${specialfolder:folder=ApplicationData}/LogFile.txt"/>

La documentación se puede encontrar here .

Espero que esto ayude.


Solo como una adición a la respuesta de Jacco, puede agregar un nombre de carpeta a la ruta si desea que los registros se mantengan separados de otros datos que pueda almacenar en appdata, como esto:

fileName="${specialfolder:folder=ApplicationData}/Logs/LogFile.txt"/>


También puedes usar lo siguiente:

<target name ="file_name" xsi:type="File" filename="${basedir}/file_name.txt"></target>

Aquí $ {basedir} significa su directorio de trabajo actual (donde se ejecuta la aplicación).