2008-11-10 8 views
3

J'ai un service Windows qui utilise log4net. Nous avons remarqué que le service en question fonctionnait très lentement, nous avons donc attaché un débogueur et nous sommes passés à travers. Il semble que chaque fois qu'il essaie d'écrire une entrée dans le journal via log4net, cela prend de 10 à 30 secondes avant que la prochaine ligne de code puisse s'exécuter. Évidemment ceci additionne ...Pourquoi Log4Net fonctionne-t-il si lentement dans mon service Windows?

Le service est 2.0 .net Nous employons le log4Net 1.2.0.30714. Nous l'avons testé sur une machine tournant sous Vista et une machine exécutant win sever 2003 et nous avons vu les mêmes résultats ou des résultats similaires.

Répondre

1

Jeff a mentionné un problème de performance avec Log4Net au Podcast 20. Il est possible que vous voyiez un problème similaire.

0

J'ai log4net avec adonet appender et je n'ai vu aucune performance décrémentielle de mon service Windows. quel appender utilisez-vous?

0

Vérifiez votre fichier de configuration pour les paramètres Log4Net. Log4Net peut être configuré pour se connecter à une machine distante, et si la connexion est lente, il en sera de même pour votre vitesse de connexion.

0

Eh bien, je ne suis pas à distance ... cela écrit dans le fichier journal sur la machine sur laquelle il s'exécute. Voici mes paramètres d'appender:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender,log4net"> 
     <file value="D:\\ROPLogFiles\\FileProcessor.txt" /> 
     <appendToFile value="true" /> 
     <datePattern value="yyyyMMdd" /> 
     <rollingStyle value="Date" /> 
     <layout type="log4net.Layout.PatternLayout,log4net"> 
     <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> 
     </layout> 
     <threshold value="INFO" /> 
    </appender> 
0

la taille maximale du fichier par défaut est 10mb. Si vos fichiers ont à peu près cette taille et que votre système de fichiers est assez plein et probablement très fragmenté, il est possible que le problème soit là. Quelle est la taille de vos fichiers journaux? J'ai rencontré des problèmes similaires avec les fichiers journaux à la taille gigaoctet.

1

Il s'est avéré que quelqu'un avait ajouté un SMPTAppender dans un fichier de configuration qui remplaçait celui de notre application. Par conséquent, l'adresse du serveur SMPT erronée était inaccessible. log4net essayait de consigner l'erreur pendant une minute par demande, puis abandonnait et passait à la ligne de code suivante. La correction de l'adresse SMTP a corrigé le problème.

+0

Cela peut être une bonne idée d'avoir un processus ou un thread séparé pour envoyer des mails SMTP, sinon vous bloquez toujours un aller-retour TCP sur chaque message enregistré - et si le serveur SMTP est en panne, vous aurez le même problème à nouveau. – orip

Questions connexes