大家好,我是阿萨。昨天收到一个提问:”当我发现一个bug时,如何查找对应日志来确定是什么地方出错了?”。
这是一个非常好的问题,日常测试过程中避免不了会出现发现了bug,但是没有办法知道是某些模块的问题,这个时候能找到出错日志就会让开发事半功倍,同时也让自己对系统的了解和掌握事倍功半。
阿萨在这里总结下自己常用的linux 的查找日志的几个命令:
1. find
find -name
: 根据文件名字来查找,比如,find / -name app.log:在根目录下查找app.log文件。 "/" 表示根目录,“." 表示当前目录。find -perm
:根据文件权限来查找,比如:find / -perm 777,:查找根目录下权限为777(rwx-rwx-rwx)的文件 。find -mtine -n(+n)
:根据文件的更改时间来查找,其中-n
代表n天之内的文件,+n
代表n天之前的文件,比如:find / -mtime -1:查找1天内修改过的文件find -type
:查找某一类型的文件,后带一些参数: -d (目录) -p (管道文件),-f (普通文件),-i(符号链接文件)
2. tail 阿萨经常用 tail -f app.log 来查看最近的日志。也可以用 tail -n 100 app.log 来查看最近n条的日志。
3. cat 一般阿萨使用 cat -n app.log | grep 'error' 来查看关键最附近的日志。
其他命令可以参考阿萨之前学习linux 的文章:Linux学习笔记五:Linux 文本处理相关命令