Log4Net no inicia sesión cuando se implementa

Log4Net no inicia sesión cuando se implementa

Si el directorio y el archivo no se crean, lo más probable es que la configuración no se lea (y, por lo tanto, no se utilice) en tiempo de ejecución.

Siempre me olvido de agregar la única línea de código para Log4net que conecta la configuración. Este código suele aparecer en la clase de arranque de la aplicación (por ejemplo, Global.asax para una aplicación ASP.NET).

XmlConfigurator.Configure(new System.IO.FileInfo(configFile));  // configFile being the path to the file.

En lugar de lo anterior en línea, puede agregar este atributo a AssemblyInfo.cs archivo:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

De cualquier manera, esto conectará log4net. Puede encontrar más información en la sección Configuración manual de los documentos de log4net.


Si está utilizando IIS, asegúrese de que el grupo correcto tenga acceso de modificación a la carpeta de registros (generalmente IIS_USERS).


Suena como un problema de permisos para mí. Casi siempre uso un directorio en el que no tengo que habilitar ningún permiso especial para que las aplicaciones escriban los archivos de registro.

Esto es lo que generalmente uso con log4net:

<file type="log4net.Util.PatternString" value="${ALLUSERSPROFILE}/<Company Name>/Logs/<Program Name>/<Log file name>.txt" />

Por supuesto, deberá sustituir el nombre de la empresa, el nombre del programa y el nombre del archivo de registro en lo anterior con valores reales.

Esto escribirá en la carpeta ProgramData donde el acceso normalmente no está restringido. Puede navegar a esta carpeta en el Explorador de archivos escribiendo %ProgramData% o %AllUsersProfile%

Otra cosa que me gusta de este método es que funciona en casi todos los sistemas operativos de Microsoft. XP, Vista, 7, 8