Je souhaite implémenter la fonction de journalisation dans une bibliothèque de classes, elle-même référencée dans un service Web. J'ai essayé d'ajouter app.config et j'ai tout fait, mais il semble que lorsqu'une exception est levée, log4net ne fait rien.Comment inclure log4net dans une bibliothèque de classes?
mon 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>
dans AssemblyInfo.cs:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "app.config")]
dans LogManager.cs:
private static readonly ILog Log = log4net.LogManager.GetLogger
(MethodBase.GetCurrentMethod().DeclaringType);
public static void WriteLog(Exception ex)
{
Log.Error(ex);
}
Pouvez-vous s'il vous plaît me dire ce qui ne va pas? Comment puis-je faire fonctionner log4net pour ma bibliothèque de classes?
Merci
Comment le code ressemble-t-il à l'endroit où vous appelez le WriteLog? –
btw, avez-vous essayé de définir votre niveau sur root à ALL, et essayez de supprimer tous ces filtres sur votre RollingFileAppender. –
@Pauli: J'ai essayé comme vous l'avez suggéré, cela ne fonctionnait toujours pas :) – Vimvq1987