2010-02-24 13 views
7

Nous avons plusieurs applications qui utilisent log4j pour la journalisation. J'ai besoin de faire fonctionner un analyseur log4j pour pouvoir combiner plusieurs fichiers journaux et exécuter une analyse automatisée sur eux. Je ne cherche pas à réinventer la roue, alors quelqu'un peut-il me diriger vers un parseur préexistant décent? J'ai le modèle de conversion de log4j si cela aide.Analyse d'un fichier journal log4j

Si ce n'est pas le cas, je vais devoir faire la nôtre.

Répondre

8

Je ne savais pas que log4J est livré avec un appender XML. Soltuion était: spécifier un appender xml dans le fichier de configuration de journalisation, inclure ce fichier xml de sortie en tant qu'entité dans un fichier xml bien formé, puis analyser le xml en utilisant votre technique favorite.

Les autres méthodes ont les limitations suivantes:

  • scie à chaîne - pas assez automatisé
  • jdbc - mauvaises performances dans une haute performance distribuée application
2

Ce que vous cherchez est SawMill, ou quelque chose comme.

+1

+1 pour le lien. Devrait mentionner que Sawmill n'est pas libre. –

1

Les fichiers journaux Log4j ne sont pas vraiment adaptés à l'analyse, ils sont trop complexes et non structurés. Il y a des outils de tiers qui peuvent le faire, je crois (par exemple Sawmill).

Si vous devez effectuer une analyse automatisée personnalisée des journaux, vous devez envisager de vous connecter à une base de données et de l'analyser. JDBC est livré avec le JdbcAppender qui ajoute tous les messages à une base de données de votre choix, mais cela a des implications sur les performances, et c'est un peu flou. Il existe cependant d'autres alternatives similaires sur l'interweb (comme this one).

0

Vous -CAN- utilisez Chainsaw V2 Log4j pour traiter les différents fichiers journaux et les recueillir dans une table, et l'une des sorties ces événements comme XML ou utilisez intégré dans le filtrage à base d'expression de scie à chaîne, la recherche & soutien colorisation à couper & Coupez les bûches.

Étapes: - Démarrer Chainsaw V2 - Création d'un fichier de configuration de scie à chaîne en copiant le fichier de configuration par exemple disponible à partir de l'onglet Bienvenue - définir une entrée LogFilePatternReceiver « plugin » pour chaque fichier journal que vous voulez traiter - Démarrer Chainsaw avec cette configuration - Chaque fichier journal se termine par un onglet distinct dans l'interface utilisateur - Mettre l'onglet du journal de tronçonneuse en pause et effacer les événements de cet onglet - Créer un nouvel onglet qui agrège les événements des divers onglets en allant à l'élément de menu 'view, crate custom expression logpanel' et entrez 'level> = DEBUG' dans la case. Il créera un nouvel onglet contenant les événements de tous les onglets avec le niveau> = debug (c'est pourquoi vous avez effacé l'onglet du journal de tronçonneuse).

Vous pouvez obtenir une vue d'ensemble de la syntaxe d'expression utilisée pour filtrer, coloriser et rechercher à partir du didacticiel (disponible dans le menu Aide). Si vous ne voulez pas utiliser la tronçonneuse, vous pouvez faire quelque chose de similaire - démarrer une application simple qui ne se connecte pas mais charge un fichier de configuration log4j.xml avec les entrées 'plugin' que vous avez définies pour la configuration de tronçonneuse, mais aussi définir un FileAppender avec un xmllayout - tous les événements reçus par les 'récepteurs' seront envoyés à l'unique appender.

3

Vous pouvez utiliser OtrosLogViewer avec batch processing. Vous devez:

  1. vous Define format de journal, vous pouvez utiliser Log4j pattern layout parser ou Log4j XmlLayout
  2. Créer une classe java qui implémente LogDataParsedListener. La méthode public void logDataParsed (données LogData, contexte BatchProcessingContext) sera appelée à chaque événement de journal analysé.
  3. Créer un fichier jar
  4. Exécutez OtrosLogViewer en spécifiant le fichier jar de traitement du journal, l'implémentation LogDataParsedListener et les fichiers journaux.
Questions connexes