快速业务通道

多线程、多平台环境中的跟踪-使用log4j和UNIX命令来挖掘跟踪数据 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
.pool : 0] (log1Bean.java:69) - [-1242473967] Random choice is 5 2004-01-25 18:18:50,530 INFO [ORB.thread.pool : 0] (log2Bean.java:60) - [-1242473967] Started doTest method in log2Bean 2004-01-25 18:18:50,531 INFO [ORB.thread.pool : 0] (log1Bean.java:91) - [-1242473967] Execution ran sucesfully 2004-01-25 18:18:50,531 INFO [ORB.thread.pool : 0] (log2Bean.java:61) - [-1242473967] Path ends in Log2Bean 2004-01-25 18:18:50,535 INFO [Thread-45] (SampleCode.java:114) - [-1242473967] Execution ran sucesfully 2004-01-25 18:18:50,865 INFO [Thread-46] (SampleCode.java:92) - [-1490252259] Program Running 2004-01-25 18:18:50,872 INFO [Thread-46] (SampleCode.java:98) - [-1490252259] Obtaining Initial context 2004-01-25 18:18:50,874 INFO [Thread-46] (SampleCode.java:103) - [-1490252259] Narrowing home interface for log1Bean 2004-01-25 18:18:50,875 INFO [Thread-46] (SampleCode.java:109) - [-1490252259] Calling Create on log1Home 2004-01-25 18:18:50,880 INFO [ORB.thread.pool : 0] (log1Bean.java:65) - [-1490252259] Started doTest method in log1Bean 2004-01-25 18:18:50,881 DEBUG [ORB.thread.pool : 0] (log1Bean.java:69) - [-1490252259] Random choice is 9 2004-01-25 18:18:50,881 INFO [ORB.thread.pool : 0] (log1Bean.java:108) - [-1490252259] Path ends at Log1Bean 2004-01-25 18:18:50,886 INFO [Thread-46] (SampleCode.java:114) - [-1490252259] Execution ran sucesfully

多线程、多平台环境中的跟踪-使用log4j和UNIX命令来挖掘跟踪数据(11)

时间:2011-09-07 ibm

您可以看到自己得到了一个排序的清单,其中列出了在指定的某一秒 (18:18:50)发生的所有事情。当然,您可以定义所需要的时间范围。这个命令 将提供所有系统中发生的每件事情;如果您乐意,还可以对单个应用程序进行日 志记录(不管它们是否相关),以及对每个日子文件执行搜索,从而获得所有系 统在给定时刻发生的事情的快照。

您还可以重用我前面给出的一个命令来截取在此时间期限中得到处理的所有 唯一 ID,并为每个线程生成单独的线程日志。这样允许您有效地来回跟踪在给 定的时间段内发生的每个事件。如果您无法完全理解这点,可以看看下面这个命 令:

cat *.log | grep 18:18:50 | sort | cut -d ''['' -f3 | cut -d '']'' -f1 | uniq | awk ''{system("grep -e " $1 " *.log > log"$1 ".txt")}''

这无疑是一个难懂的行,不过请考虑一下它给您提供了什么信息:对于您选 择为其提供日志的任意多的系统,您可以指定任意时刻的任何快照,然后获得一 个单独的线程日志,其中显示那些进程在其生命周期中都做了些什么。实际上, 与前面那样得到 50 个文件不同,您 仅得到在指定的时间段中记录了一些输出 的那些线程的文件。如果想要尝试理解出故障时事件之间的复杂交互,那么这听 起来好像是一些相当有帮助的信息。

当然,如果您还回想得起的话,我实际上仅只是捕捉在我指定的时间期限内 做了日志记录的线程。那些当时正在运行但是没有做日志记录的线程又怎么样呢 ?下面是另外一些可以帮助您的命令。如果觉得烦的话,我或许可以把所有这些 内容全都拼接到一个臃肿的命令中;但是相反,下面是三个单独的命令,它们基 本上是检查某个特定时间段之前和之后的所有唯一编号,然后检查具有这些编号 的线程是否在之前 和之后记录了日志(因而这些线程也在该时间段内运行)。

awk ''{ if ($2 < "18:18:50")

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号