日志查看技巧之筛选&去重[排查篇]

日志查看技巧之筛选&去重[排查篇],第1张

概述引语:相信大家都会偶尔遇到要排查问题发生的原因的情况,那这种时候,我们最有力后盾就是日志文件了,所以谨记日志记录真的很重要。但是日志文件往往是很大的文件,而且里面有太多的东西可能不是我们需要的,如无数重复行。如果能够有效筛选出对我们有意义的记录,那就太方便了!下面,就记录一些我筛选日志的一些技巧,供自己和部分需要的新手朋友参考!(高能勿喷,欢迎留下你的高见)主要使用awk命令进行筛选!原始日志php_error.log如下:[21-Nov-2015 11:10:14 UTC] PHP Warning: PHP Startup: in Unknown on line 0[21-Nov-2015 11:39:48 UTC] PHP Notice: Undefined index: HTTP_RAW_POST_DATA in E:wampwwwhtdocswx_receiver.php on line 39重定向输出相关(这个很重要,因为所有打印出来的,你不可能看得完,导出到其他地方后慢慢分析才是硬道理):$ echo "hello,world!" > out.log #直接输出到$ echo "hello,world!" >> out.log #以添加的形式输出到$ echo "ssss!" >> out.log 2>&1 #指定错误级别输出到筛选含有warning的记录:$ awk '/Warning/' php_error.log$ awk '{if($0 ~ /Warning/)print $0;}' php_error.log #完整写法筛选含Warning后面出现Startup的记录:$ awk '/Warning.*?Startup/' php_error.log$ awk '{if($0 ~ /Warning.*?Startup/)print $0;}' php_error.log#完整写法原始日志mysql_error.log如下:[2015-12-20 20:45:51] Error in Mysql::fetchE:wampwwwincludesclassdb.cls.php on line 149E:wampwwwhtdocsppsystemModel.cls.php on line 44E:wampwwwhtdocsppcontrollersadminScoreController.cls.php on line 56E:wampwwwhtdocsppsystemApplication.cls.php on line 72E:wampwwwhtdocsppsystemApplication.cls.php on line 49E:wampwwwhtdocsppindex.php on line 19[2015-12-20 20:45:51] mysql_errno: 1054mysql_error: Unknown column 'score_rule' in 'field list'E:wampwwwincludesclassdb.cls.php on line 64E:wampwwwhtdocsppsystemModel.cls.php on line 43E:wampwwwhtdocsppcontrollersadminSeController.cls.php on line 86E:wampwwwhtdocsppsystemApplication.cls.php on line 72E:wampwwwhtdocsppsystemApplication.cls.php on line 49E:wampwwwhtdocsppindex.php on line 19去除相同行(时间除外),并带时间行数打印出:$ awk '{if($1 ~ /^[[[:digit:]]{4}-/){t=$0;}else{if(!a[$0]++)print NR, " ===> ", t, " ", $0;}}' mysql_error.log其他类似情况,请详细理解正则表达式写法。直接查看原始mysql-bin-log日志(binlog是二进制文件,查看不了,需借助mysqlbinlog工具):$ mysqlbinlog mysql-bin-log.000038 > out.log 2>&1统计某文件夹下的文件行数:grep -r -c ./* "<?php" | wc -lgrep -r -l "<?php" ./thinkphp/* | xargs cat | wc -l #more perfectwc -l *find . -name "*.java" | wc -lfind . -name "*.java" | wc -l | grep total 对于字符一类的处理,awk,sed等命令是相当方便的,适当运用一下,对于工作还是挺方便的。但是这种东西用多了,往往在windows的工具下,也有这种 *** 作的想法,但是绝对没有这么方便,可以使用一些简单的正则进行匹配一些字符,也还是提高查找速度的!正则:好东西!关键:找特征,写规则,极简化!注意:各个语言的具体描述,可能不同!diff file1 file2 #比较两个文件的差异cat file.txt | sort > file.txt #让文件内容按字母排序 

  引语:相信大家都会偶尔遇到要排查问题发生的原因的情况,那这种时候,我们最有力后盾就是日志文件了,所以谨记日志记录真的很重要。但是日志文件往往是很大的文件,而且里面有太多的东西可能不是我们需要的,如无数重复行。如果能够有效筛选出对我们有意义的记录,那就太方便了!下面,就记录一些我筛选日志的一些技巧,供自己和部分需要的新手朋友参考!(高能勿喷,欢迎留下你的高见)  主要使用awk命令进行筛选!

原始日志PHP_error.log如下:

[-Nov- :: UTC] PHP Warning: PHP Startup: UnkNown on line -Nov- :: UTC] PHP Notice: Undefined index: HTTP_RAW_POST_DATA E:\wamp\www\htdocs\wx_receiver.PHP on line

  重定向输出相关(这个很重要,因为所有打印出来的,你不可能看得完,导出到其他地方后慢慢分析才是硬道理):

$ > >> >> out.log >& #指定错误级别输出到

$ ~ /Warning/)print ;} PHP_error.log #完整写法

  筛选含Warning后面出现Startup的记录:

$ - ~ /Warning.*?Startup/)print ;}: PHP_error.log  #完整写法

原始日志MysqL_error.log如下:

[-:] Error pp\system\Model.cls.PHP on line [pp\controllers\admin\scoreController.cls.PHP on line pp\system\Application.cls.PHP on line -r -c .;}else{if(!a[]++)print NR," ===> ",t," ",;}}pp\system\Application.cls.PHP on line pp\index.PHP on line <span >2015-<span >12-<span >20 <span >20:<span >45:<span >51] MysqL_errno: <span >1054<span >
MysqL_error: UnkNown column
<span >'
<span >score_rule
<span >'
<span >in
<span >'
<span >fIEld List
<span >'
<span >
E:\wamp\www\includes\class\db.cls.PHP on line
<span >64
<span >
E:\wamp\www\htdocs\
pp\system\Model.cls.PHP on line <span >43
<span >
E:\wamp\www\htdocs\
pp\controllers\admin\SeController.cls.PHP on line <span >86
<span >
E:\wamp\www\htdocs\
pp\system\Application.cls.PHP on line <span >72
<span >
E:\wamp\www\htdocs\
pp\system\Application.cls.PHP on line <span >49
<span >
E:\wamp\www\htdocs\
pp\index.PHP on line <span >19

  去除相同行(时间除外),并带时间行数打印出:

$ MysqL_error.log

  其他类似情况,请详细理解正则表达式写法。

  直接查看原始MysqL-bin-log日志(binlog是二进制文件,查看不了,需借助MysqLbinlog工具):

$ MysqLbinlog MysqL-bin-log. > out.log >&

  统计某文件夹下的文件行数:

wc -l
find . -name "
.java" | wc -l
find . -name "*.java" | wc -l | grep total

  正则:好东西!

  关键:找特征,写规则,极简化!

  注意:各个语言的具体描述,可能不同!

| sort > file.txt #让文件内容按字母排序 总结

以上是内存溢出为你收集整理的日志查看技巧之筛选&去重[排查篇]全部内容,希望文章能够帮你解决日志查看技巧之筛选&去重[排查篇]所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1050588.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存