Chinaunix
标题:
日志分析|日志抽取
[打印本页]
作者:
chancelai
时间:
2012-08-26 23:06
标题:
日志分析|日志抽取
各位兄弟姐妹好,小弟请教大家个问题:
我想要的效果是把web请求时间大于某个值的日志截取出来,方便开发人员查看哪个方法引起系统缓慢,方便开发调优。
文件格式如下(".*"代表省略)
.......
(2012-08-22 09:46:40,431) [STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)' WARN .*
(2012-08-22 09:46:56,160) [ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)' INFO .*
java.lang.NullPointerException:.*
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
.......
(2012-08-22 09:46:56,161) [ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' INFO .*
(2012-08-22 09:46:56,134) [ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)' INFO [com.test.ParamFilter
] - request_end used 295 ms
......
这里面使我困扰和需要的解决的是
1.把日志按照线程号分割成不同的文本
2.当前行没有线程号则属于上一个线程号的文本
3.分割后如何按照(request_end)这个标志,把抽取连续行
在下不才,只能只能有这水平。。。求指教
awk '{if ($0 ~ ".*request_end used .* ms.*"
if($15>10000) {print $0}}'
作者:
rdcwayx
时间:
2012-08-27 09:33
本帖最后由 rdcwayx 于 2012-08-27 11:34 编辑
awk '/ExecuteThread.*for queue/{mark=$5}
{a[mark]=a[mark] RS $0}
/request_end.*ms/&&$(NF-1)>10000{print a[mark];a[mark]=""}' infile
复制代码
作者:
chancelai
时间:
2012-08-27 22:45
{:3_191:} 有点效果出来了
我研究研究
谢谢版主指点
{:3_184:}我很讨厌这验证码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2