最近工作中,发现页面的显示数据和预期不一致,在排查了数据表过后,发现错误原因不在数据表和代码逻辑中。因为数据表中的数据来自log文件,所以猜测是log中的信息有误。


排查log文件过程中,因为是只读,所以试了有vim,cat,tail,grep四个,最后主要用来查看文件内容用的是tail与grep。

先贴两个相关的链接:

里面讲解了一些相关的信息。

不过在使用的时候不可能简简单单的就能出来,比如我使用的命令:tail -f /opt/文件夹/文件名.log |grep 'GET /筛选条件',其中的‘筛选条件’,就是代码中,需要导入数据表中的某个字段 like '筛选条件'一致。这样看到的是数据的实时条件的最后几条,然后页面走一次流程,便会在脚本看到新增的数据。


grep 'GET /筛选条件' /opt/文件夹/文件夹/文件名,可以查看某个文件内容,不过不是实时的,一般的文件这个命令基本可以支持,但是遇上某些记录或需求,如:

    1、数量太多,只查看某一天的,可以在后面加日期条件:       | grep '05/Dec/2017'

    2、每一条都会很大,所以需要摘出每一条日志中的某个字段来排查,类似于数据库语句中的 select id,name fom XXX 中的单独拿出id和name来检查,可以在命令后面加个条件:              | grep -o 记录中的某个字段.......................................|less

    3、如果不看记录内容,只是看数目,后面加:        | wc -l


** 注意:1、上面的第二条中的‘记录中的某个字段’,指的是记录中,会有一个字段的值跟你想要的字段值一致,但是它的键名并不是你代码中的那样,它有自己的命名,故需要你现自己看过记录后,确定哪一个字段是你需要的那个‘name’或者‘id’

              2、第二条中的‘.........................’,指的是显示你所需要的那个键值后面的多少个字符,一个点代表一个字符位,这个根据自己的实际需求来写