如何分析多行日志条目?

时间:2012-03-17 20:58:44

标签: logging

我有类似的日志条目:

1. ACMEService|73312583[INFO|16/03/2012 12:39:03]: ********** Starting the operation **********
2. OtherService|73312584[INFO|16/03/2012 12:39:03]: Exception occured...
3. ACMEService|73312583[INFO|16/03/2012 12:39:04]: **** JAXB Objects ****
4. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
5. <ns9:local>
6.    <ns2:Header>
7.        <ns6:id>73312583</ns6:id>
8.....
9. OtherService|73312584[INFO|16/03/2012 12:39:03]: End processing
10. ACMEService|73312583[INFO|16/03/2012 12:39:03]: ********** End of the operation **********

ACMEService是服务的名称,编号73312583标识请求。我想显示ACMEService请求号73312583的日志条目(第1,3,8,10行)。 我不知道如何显示它们,因为还有一个多行日志条目(第3 - 8行)。 它有GUI工具吗?或者我可以用linux命令grep做到吗?有人可以举个例子吗? 谢谢!

2 个答案:

答案 0 :(得分:0)

通常我会编写一个perl脚本来解析日志文件,构建一些关联数组并打印我之后的信息。这些脚本主要是一次性的。

您在多线程环境中编写日志文件,是否可以确保连续写入第3行到第8行?如果不是,则需要调整日志记录以输出标签,该标签可以在每个日志行中通过解析脚本识别。

答案 1 :(得分:0)

agrepgrep变体,用于搜索多行记录。我已经用了太长时间来记住如何使用-d delimeter选项,但它应该适合你。

使用sed加入行和grepping通过这些是另一种选择。 This似乎做了类似于你正在寻找的事情。