Quiero implementar la función de registro en una biblioteca de clases, que a su vez se hace referencia en un servicio web. Traté de agregar app.config e hice todo lo necesario, pero parece que cuando se lanza una excepción, log4net simplemente no hace nada.¿Cómo incluir log4net para una biblioteca de clases?
mi app.config
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="D:\\mylogfile.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<filter type="log4net.Filter.StringMatchFilter">
<stringToMatch value="test" />
</filter>
<filter type="log4net.Filter.StringMatchFilter">
<stringToMatch value="error" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline%exception" />
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="RollingFileAppender"/>
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
en AssemblyInfo.cs:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "app.config")]
en LogManager.cs:
private static readonly ILog Log = log4net.LogManager.GetLogger
(MethodBase.GetCurrentMethod().DeclaringType);
public static void WriteLog(Exception ex)
{
Log.Error(ex);
}
¿Puede usted por favor dime lo que está mal? ¿Cómo puedo hacer que log4net funcione para mi biblioteca de clase?
Gracias
¿Cómo se ve el código en el lugar al que llama el WriteLog? –
Por cierto, ha intentado establecer su nivel en root en ALL e intente eliminar todos esos filtros en su RollingFileAppender. –
@Pauli: Intenté como sugirió, todavía no funcionó :) – Vimvq1987