简介
总结下在 Linux 系统上查看项目日志的几种方式,很实用的~
一、查看较小的日志文件
假设日志文件名为 service-2020-02-20.log,当日志文件不是很大的时候,比如10页以内能全部看完的话,我们可以用以下几种方式查看日志:
- 如果想持续侦听最新产生的日志,可以这样(f 参数代表持续侦听):
命令:tail -f service-2020-02-20.log
- 如果想从上到下,一行行查看所有的日志信息,可以这样
命令:cat service-2020-02-20.log
- 想一行行或一页页查看可以用:
命令:more service-2020-02-20.log 或者 less service-2020-02-20.log
- 可以直接用 vim 打开查看
命令:vim service-2020-02-20.log
- G 跳转到文件的末尾
- ? +关键字搜索对应的记录
- 按 n 往上查询,按 N 往下查询
二、查看较大的日志文件
如果是几天的日志会输出到一个文件里,那这个文件可能会比较大,比如大几百MB,如果直接向上面那样打开的话,会明显的卡顿。体验非常不好,而且那么大的文件打开,想要看到自己想要的日志信息也比较难找,那么就需要稍微转换下思路。
- 比如我只想看最近用户登录时候的一些日志信息,那么可以这样:
命令:cat service-2020-02-20.log | grep login
上面这种方式就是配合管道符(|)和 grep 命令,查找和login 相关的日志信息。还可以加上 n 参数,显示查找到的日志信息行号,有多条的话会显示多个记录。
命令:cat -n service-2020-02-20.log | grep login
- 通过上面的方式我们可以找到日志信息的具体行号,但具体的日志信息可能并不刚好在那一行,可能在这行的上面或下面,所以我们可以查看当前行的前后各10行的日志信息。
命令:sed -n "1000,1010p" service-2020-02-20.log
上面的命令就是查看第1000行到第1010行的日志信息。或者也可以这样:
命令:cat -n service-2020-02-20.log | tail -n +1000 | head -n 20
- 解释:上面这行命令的意思是,用 cat 命令查看这个日志文件,将这个文件里的所有内容丢给 tail 命令,tail 命令取出这个文件的倒数1000行到最后一行所有的内容丢给 head 命令,head 再取从第1000行开始的前20条,即1000行到1020行的内容显示出来。
- 如果想看某个关键字,比如 login 所有相关的日志信息,可以这样:
命令:cat service-2020-02-20.log | grep login | more
- 解释:上面这行命令的意思是,用 cat 命令查看这个日志文件,将文件所有内容丢给 grep 命令,然后 grep 命令将 login 关键字相关的内容丢给 more 命令,然后我们可以按空格键一次翻一页,或者回车键一次翻一行来查看日志信息。
- 如果想看某个关键字相关的日志信息,想将它临时存放起来,稍后再看,可以这样:
命令:cat service-2020-02-20.log | grep login > /usr/local/src/temp.log
- 解释:上面这行命令的意思是,用 cat 命令查看这个日志文件,将所有的日志内容丢给 grep 命令,grep 命令将 login 关键字相关的内容写入到 /usr/local/src/ 路径下的 temp.log 文件中。
- 查看日志输出了多少行:
命令:cat service-2020-02-20.log | wc -l
三、查看进程和端口
顺便讲一下查看进程和端口的方法,其实之前在我的 Linux 系统运行项目的几种方式 这篇文章的文末也提过。
两种查看进程信息的方式:
- ps -ef
- ps aux
一般也是配合管道符(|)和 grep 命令查看,比如查看 java 相关的进程信息:
命令:ps -ef | grep java
查看端口信息的方式:
- netstat -lntup
比如查看 8090 端口相关信息:
命令:netstat -nlp | grep :8090
参考文档
https://mp.weixin.qq.com/s/wPBILQSl8-OVNYcJN9cBRg
https://blog.csdn.net/weixin_40242806/article/details/104032768