2010-03-02 2 views
8

J'ai un script qui a plusieurs threads en parallèle. Ces threads écrivent dans un fichier Log4Net RollingFileAppender. La lecture de ce journal est très déroutante car tous les journaux de threads sont mélangés. Je me demande ce qui est un bon moyen d'écrire ces journaux, et quelle est la meilleure façon de lire ces fichiers afin de lire les informations de débogage d'un thread particulier devient plus facile.Journal de lecture de Log4Net généré par plusieurs threads

Répondre

7

Mettez à jour votre fichier de configuration pour inclure le nom du thread dans la sortie du journal. Si vous définissez le nom de threads dans le code, ce même nom sera enregistré dans votre fichier. Ceci est un exemple simple d'inclure le nom de fil via le fichier de configuration log4net < conversionPattern tag >:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="service.log" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="2MB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     **<conversionPattern value="%-5level : [%t] - %message%newline" />** 
    </layout> 
</appender> 

MISE À JOUR j'ai écrit une application simple de POC pour le démontrer. http://codereport.net/logging-the-thread-name-with-log4net/

+0

Thread.Name Lien MSDN: http://msdn.microsoft.com/fr-fr/library/system.threading.thread.name.aspx –

+0

J'ai ajouté les informations de thread, puis j'utilise LogExpert (http: //www.log-expert.de/) pour filtrer le journal afin de lire facilement la trace de chaque thread. –

0

Considérez la connexion à quelque chose de plus facile à gérer, comme une base de données. En utilisant la journalisation d'AdoNetAppender dans une table de base de données, vous pouvez facilement trier et filtrer sur le thread.

Sur le site log4net, il y a config samples pour savoir comment procéder.