引语:相信大家都会偶尔遇到要排查问题发生的原因的情况,那这种时候,我们最有力后盾就是日志文件了,所以谨记日志记录真的很重要。但是日志文件往往是很大的文件,而且里面有太多的东西可能不是我们需要的,如无数重复行。如果能够有效筛选出对我们有意义的记录,那就太方便了!下面,就记录一些我筛选日志的一些技巧,供自己和部分需要的新手朋友参考!(高能勿喷,欢迎留下你的高见) 主要使用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 >指定错误级别输出到
$ PHP_error.log
$PHP_error.log #完整写法
筛选含Warning后面出现Startup的记录:
$ PHP_error.log
$PHP_error.log #完整写法
原始日志MysqL_error.log如下:
[--::] Error MysqL::fetch
E:\wamp\www\includes\class\db.cls.PHP on linepp\system\Model.cls.PHP on line pp\controllers\admin\scoreController.cls.PHP on line pp\system\Application.cls.PHP on line pp\system\Application.cls.PHP on line pp\index.PHP on line [2015-12-20 20:45:51] MysqL_errno: 1054
MysqL_error: Unknown column'score_rule' in 'field list'
E:\wamp\www\includes\class\db.cls.PHP on line64
E:\wamp\www\htdocs\pp\system\Model.cls.PHP on line 43
E:\wamp\www\htdocs\pp\controllers\admin\SeController.cls.PHP on line 86
E:\wamp\www\htdocs\pp\system\Application.cls.PHP on line 72
E:\wamp\www\htdocs\pp\system\Application.cls.PHP on line 49
E:\wamp\www\htdocs\pp\index.PHP on line 19
去除相同行(时间除外),并带时间行数打印出:
$ ",t," ",$0;}}MysqL_error.log
其他类似情况,请详细理解正则表达式写法。
直接查看原始MysqL-bin-log日志(binlog是二进制文件,查看不了,需借助MysqLbinlog工具):
$ MysqLbinlog MysqL-bin-log.> out.log >&
统计某文件夹下的文件行数:
-r -c .PHP" | wc -l
grep -r -l "PHP" ./thinkPHP/* | xargs cat | wc -l #more perfect
wc -l find . -name ".java" | wc -l
find . -name "*.java" | wc -l | grep total
正则:好东西!
关键:找特征,写规则,极简化!
注意:各个语言的具体描述,可能不同!
文件的差异
cat file.txt| sort > file.txt #让文件内容按字母排序
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。