studio - log4net no se registra cuando se ejecuta una aplicación.Net 4.0 de Windows incorporada en modo de lanzamiento
log4net structured logging (3)
Gracias Deepu
agregando [assembly: log4net.Config.XmlConfigurator (Watch = true)] al archivo assemblyInfo trabajado para mí
Tengo una aplicación de servicio de Windows .Net 4.0 que usa log4net.
Aquí está mi configuración de log4net.
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
</layout>
</appender>
<appender name="ColorConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR" />
<foreColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="FATAL" />
<foreColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="WARN" />
<foreColor value="Blue, HighIntensity" />
</mapping>
<mapping>
<level value="INFO" />
<forecolor value="White, HighIntensity" />
</mapping>
<mapping>
<level value="DEBUG" />
<forecolor value="Green, HighIntensity" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
</layout>
</appender>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<appendToFile value="true" />
<datePattern value="yyyyMMdd" />
<file value="Logs/Server.log" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
</layout>
<maximumFileSize value="10MB" />
<rollingStyle value="Composite" />
<staticLogFileName value="true" />
</appender>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{Context}] - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="ColorConsoleAppender" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
El inicio de sesión funciona como se espera cuando se inicia el servicio mientras se usa el exe que se creó en modo de depuración (los archivos de registro se crean en la ruta correcta), pero no funciona cuando se usa el exe incorporado en el modo de lanzamiento.
He intentado utilizar un logllnet dll recompilado para .Net 4.0 siguiendo los pasos mencionados en este blog ... http://tseonet.blogspot.com/2010/07/making-log4net-run-on-net-40.html .
Pero eso tampoco funcionó.
Cualquier ayuda es muy apreciada.
Me encontré con el mismo problema hoy y después de revisar los documentos de log4net hice lo siguiente y funcionó para mí.
log4net.Config.XmlConfigurator.Configure();
Pensé que valdría la pena compartirlo. A continuación se muestra la clase de registrador que utiliza log4net como proveedor
/// <summary>
/// Logger class using log4net library
/// </summary>
public class Log4NetLogger : ILogger
{
public Log4NetLogger(Type configType)
{
log4net.Config.XmlConfigurator.Configure();
this._logger = LogManager.GetLogger(configType);
}
}
Para mí, el atributo de ensamblaje no era una opción, ya que incluí la funcionalidad de registro en un ensamblaje separado donde log4net era uno de los proveedores.
Sugiero activar la depuración interna como se explica aquí: