coloredconsoleappender log4net

coloredconsoleappender - log4net levels



Log4net no crea el archivo de registro (6)

Recibo un error en un programa que tiene log4net configurado, pero no se está creando ningún archivo de registro. Estoy seguro de que el registro está configurado en el programa porque otros usuarios han creado archivos de registro desde el mismo, utilizando un archivo de configuración idéntico al que estoy publicando a continuación (excepto por la ruta de archivo). Estoy seguro de que tengo permisos de escritura en la ruta. En el punto donde el programa falla, absolutamente debe haber pasado la inicialización del registro.

¿Algo se ve mal en este archivo de configuración o alguien ha experimentado un problema similar y sabe algo que debería buscar en el programa del que estoy intentando obtener un registro?

<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="AutoTag" type="System.Configuration.NameValueSectionHandler"/> <section name="WindwardReports" type="System.Configuration.NameValueSectionHandler"/> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821"/> </configSections> <AutoTag> <add key="_debug" value="true"/> </AutoTag> <WindwardReports> <add key="line.break" value="internal"/> </WindwardReports> <appSettings> <add key="sql.timeout" value="240"/> </appSettings> <log4net> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="C:/Users/loganm/Documents/Catapult.log"/> <param name="AppendToFile" value="true"/> <param name="MaxSizeRollBackups" value="2"/> <param name="MaximumFileSize" value="100KB"/> <param name="RollingStyle" value="Size"/> <param name="StaticLogFileName" value="true"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] ac.server %-5p %c - %m%n"/> </layout> </appender> <root> <level value="DEBUG"/> <appender-ref ref="RollingFileAppender"/> </root> </log4net> </configuration>


Aquí hay algunas cosas posibles a considerar:

  1. ¿Quizás estás usando una versión diferente de log4net DLL que tus colegas? Intente eliminar la información de la versión y la clave pública de la sección de configuración, es decir, acórtela a:

    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>

  2. Intente cambiar el nombre del archivo para usar barras inclinadas hacia atrás, es decir, "C: // Users // loganm / ...". Alternativamente, puede intentar usar barras diagonales: "C: / Users / loganm / ..."

  3. Si reconstruiste el programa antes de ejecutarlo, asegúrate de que de hecho estés usando el mismo AssemblyInfo.cs que tus colegas. Un error común es dejar de iniciar el registrador allí. Debería tener algo como esto en la parte inferior:

    // Activación de Log4Net
    [ensamblaje: log4net.Config.XmlConfigurator]


El acceso denegado en el usuario asp.net podría ser un problema. por ejemplo: ejecutar desde el proyecto de prueba hace el registro pero ejecutando desde la aplicación web no

solo agrega esto a config

<appSettings> <add key="log4net.Internal.Debug" value="true"/>

Depurar la aplicación y ver la salida estándar. esto generará información de depuración de log4net (eliminada una vez que se descubre el problema)


Encontré el problema y, desafortunadamente, fue solo que el registro no se había configurado en el programa y me dieron información incorrecta.


Ingrese el siguiente código en su aplicación antes de ingresar su código de registro:

log4net.Config.XmlConfigurator.Configure();

Puedes definirlo en Global.asax:

void Application_Start(object sender, EventArgs e) { // Code that runs on application startup // Initialize log4net. log4net.Config.XmlConfigurator.Configure(); }

También puede agregar la siguiente línea como le recomendó Kevin (ya sea que mencione el nombre de su archivo de configuración o no):

[assembly: log4net.Config.XmlConfigurator]

o

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]

¡¡¡Espero eso ayude!!!


También tuve este problema, me sorprendió el tiempo que pasé revisándolo todo. Finalmente, una consulta en Google me recordó el paso que di cuando usé Log4Net por última vez: ¡tuve que agregar esto al archivo AssemblyInfo.cs! ¡Loco! Estoy usando Log4Net en una aplicación de consola C # con la configuración de Log4Net en el archivo app.config.

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


asegúrese de que el archivo log4net.config, propiedad Copiar al directorio de salida no sea "No copiar".

En realidad la mejor solución es agregar

<configuration> <appSettings> <add key="log4net.Internal.Debug" value="true"/> </appSettings> </configuration>

para rastrear lo que está pasando en el lado trasero. Te ayudará a detectar el problema.