Log4Net / C # - Deshabilitar el registro por defecto
Estoy usando log4net en un proyecto de C #, en el entorno de producción, quiero deshabilitar todo el registro, pero cuando ocurre un error fatal, debería registrar todos los 512 mensajes anteriores en un archivo. Lo he configurado correctamente, y es funcionando bien. Registra los mensajes en un archivo cuando ocurre un error fatal.
Pero cuando lo ejecuto desde Visual Studio, puedo ver que todos los mensajes de registro se escriben en la ventana de resultados, sin importar si es un Fatal o no. (No puedo ver estos mensajes cuando ejecuto desde el Explorador de Windows; mi aplicación es un exe de WinForm y no hay una ventana de la Consola para ver el resultado)
¿Hay alguna manera de deshabilitar este registro? Necesito mis registros solo en el archivo, eso también cuando ocurre un error fatal.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net debug="false">
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="1MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender" >
<bufferSize value="512" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="FATAL"/>
</evaluator>
<appender-ref ref="RollingFileAppender" />
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="BufferingForwardingAppender" />
</root>
</log4net>
</configuration>
Y así es como lo configuro en el inicializador estático de Windows Forms.
static Window1()
{
Stream vStream = typeof(Window1).Assembly.GetManifestResourceStream("TestLogNet.log4net.config");
XmlConfigurator.Configure(vStream);
BasicConfigurator.Configure();
}
Y tengo el objeto logger inicializado en el constructor de WinForm
logger = LogManager.GetLogger(typeof(Window1));
[idioma - C #, .NET Framework - 3.5, Visual Studio 2008, log4net 1.2.10, tipo de proyecto - WinForms]