对于查看日志,我们可能会关心以下几点:
- 快速打开日志
- 快速找到我们需要的内容
我们打开情况要分成两种:
1.进入文件内部
这里给大家推荐一个命令less
这个命令有一个特点,就是它查看时,不会一次加载整个日志,所以就像我们经常使用的分页。所以,它能够快速打开日志。
至于第二点,快速查找,这个在打开文件后,用 / 加上你要搜索的内容即可。
N-向前查找,n-向后查找
以下是个人常用命令(后续会一直拓展)
OPTIONS
-N 显示行号
MOVING
G(常用) 跳转到文件末尾-默认打开文件是停留在文件头的,而我们基本上都会关心文件末,因为末尾意味着最新。如果,你想跳转到文件开头按g即可。
b(back)向前翻页,空格向后翻页
拓展:有时候,会嫌弃翻页太慢了,此时我们可以快进/快退指定行数。先输入数字1000,然后按住上方向键,即可往前翻1000行,按住下方向键,即可往后翻1000行。
F 相当于tail -f
less中文乱码解决
export LESSCHARSET=UTF-8
2.当前命令页打开
这种情况,我们用cat命令
由于我们不可能输出整个文件的内容,所以我们可以添加一个过滤条件。| grep 过滤条件
比如 cat 1.txt | grep 你好
就会帮助我们在1.txt这个文件中,找到所有包含“你好”的行。
还有一个命令能够达到相同的效果:
grep 搜索内容 文件名
grep 搜索内容 *//在某个目录下搜索
实际运用
- 比如,当我们在代码中有:
Logger.info(“用户名:”+userName);
那么,此时我们就可以搜索 grep 用户名 abc.log
这时候,如果我们是用xshell打开的,还可以运用xshell搜索的功能(工具栏的放大镜按钮),进行再次搜索,这个搜索是支持正则的。比如:abc | def 即表示abc或者def,这个还是很有用的。 - 有时候,我们需要看上下文的所有打印日志,比如在
Logger.info(“用户名:”+userName);
代码…
Logger.info(“查询情况:”+result);
我们则可以用less打开文档查看 - 当我们需要一边调用api,一边查看实时日志时,我们则可以使用另一个命令:tail -f 文件名 (可以简写成tailf 文件名)
当我们想只关注我们预设的日志输出是否出现,可以加上过滤:
tailf 文件名 | grep 搜索内容,这个命令非常有用。