Log4Net performance

J'ai écrit une application en C# qui s'exécute constamment dans une boucle et plusieurs threads écrire un log4net fichier.

Le problème, c'est que plus l'application est en cours d'exécution, plus le temps qu'il faut pour terminer une boucle. J'ai couru un FOURMIS Performance profiler, et a remarqué que la plupart de ce temps CPU est passé l'enregistrement à l'aide log4.net.

La plus détaillée les journaux de la CPU en plus il utilise et après 30 minutes d'utilisation à 100% de la CPU. Si je désactive la journalisation, le temps d'une boucle reste constante au cours du temps. J'ai eu un coup d'oeil à l'analyseur de Performances Windows et le Disque Physique est la plupart du temps d'INACTIVITÉ.

J'ai essayé de garder ma connexion à un minimum, mais même avec une quantité relativement faible de l'exploitation forestière im encore l'expérience de la question.

Voici un échantillon de mes Log4net.xml fichier de configuration:

<log4net>
  <root>
    <!-- Levels: OFF, DEBUG, INFO, WARN, ERROR, FATAL-->
    <level value="INFO" />
    <appender-ref ref="RollingLogFileAppender" />
  </root>

  <!--Logs to a file-->
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="c:\\logs\\log-file.txt" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+ExclusiveLock" />
    <rollingStyle value="Composite" />
    <datePattern value="yyyyMMdd" />
    <maxSizeRollBackups value="20" />
    <maximumFileSize value="1MB" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger %L %M Schdl:[%property{scheduleContext}] Job:[%property{jobContext}] - %message%newline" />
    </layout>
  </appender>
</log4net>

Je suis en utilisant le même enregistreur de données à partir de chaque objet qui se connecte.

  log4net.ILog logger;
  log4net.Config.BasicConfigurator.Configure();
  logger = log4net.LogManager.GetLogger(typeof(myProject));

Pourquoi serait-il, de plus en plus de CPU le plus qu'il fonctionne?

Tout conseiller sur la façon d'améliorer ce serait appréciée.

essayez d'utiliser un ADOnet appender à la place ?
ADOnet était à l'origine le même problème

OriginalL'auteur Benjamin Ortuzar | 2010-03-09