2011-02-09 3 views
2

Je traite beaucoup de logs générés par Log4j de Java et le module de journalisation de Python. Les deux créent des traces de pile qui incluent des caractères de nouvelle ligne, entraînant l'entrée du journal sur plusieurs lignes. Cela rend les choses difficiles à trouver avec grep et viole les règles de mise en forme du fichier journal conventionnel (une entrée par ligne). Si je trouve quelque chose d'intéressant dans la trace de la pile, je dois ouvrir le fichier journal entier (qui peut être très volumineux) et naviguer jusqu'à la ligne grep trouvée, puis remonter pour trouver le début de l'entrée du journal. Cela se sent kludgey.journalisation conviviale des traces de pile

Y a-t-il une meilleure façon de gérer cela? Peut-être supprimer des caractères de nouvelle ligne des traces de la pile en quelque sorte?

Merci pour vos suggestions!

+0

Pouvez-vous reconfigurer le format de journal? –

+0

Je ne l'ai jamais essayé moi-même mais dans le cas de Java, vous pouvez également utiliser ce programme: http://logging.apache.org/chainsaw/ – Zarathustra

Répondre

0

Si vous avez GNU grep vous pouvez utiliser le -C (AKA --context) Commutateur:

CNUM, --context = NUM
Imprimer les lignes de sortie NUM le contexte. Places une ligne contenant - entre groupes de matchs contigus.

Je ne sais pas si -C fait partie de POSIX grep mais ça vaut le coup.

+0

Ce n'est pas tout à fait ce que je cherchais, mais je suppose que c'est la meilleure option disponible. Merci. –

-1
grep 'your expressing and file name' | less 

Cela vous montrera d'abord une petite pile. Ensuite, entrez pour en savoir plus.

Vous pouvez également faire la « tête » ou « queue » du nom de fichier

tail -1000 'filename' 

Cette dernière montre (queue) 1000 lignes de ce fichier.

Questions connexes