对于查看日志,我们可能会关心以下几点:

  1. 快速打开日志
  2. 快速找到我们需要的内容

我们打开情况要分成两种:

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 搜索内容 *//在某个目录下搜索

实际运用

  1. 比如,当我们在代码中有:
    Logger.info(“用户名:”+userName);
    那么,此时我们就可以搜索 grep 用户名 abc.log
    这时候,如果我们是用xshell打开的,还可以运用xshell搜索的功能(工具栏的放大镜按钮),进行再次搜索,这个搜索是支持正则的。比如:abc | def 即表示abc或者def,这个还是很有用的。
  2. 有时候,我们需要看上下文的所有打印日志,比如在
    Logger.info(“用户名:”+userName);
    代码…
    Logger.info(“查询情况:”+result);
    我们则可以用less打开文档查看
  3. 当我们需要一边调用api,一边查看实时日志时,我们则可以使用另一个命令:tail -f 文件名 (可以简写成tailf 文件名)
    当我们想只关注我们预设的日志输出是否出现,可以加上过滤:
    tailf 文件名 | grep 搜索内容,这个命令非常有用。