⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 GOPS 全球运维大会 2021 · 上海站 「网络」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

在 Linux 下如何才能实时查看日志内容呢?有很多工具可以帮助我们在文件持续修改的同时输出文件内容,最常用的莫过于 tail 命令了。

1. tail Command – Monitor Logs in Real Time

如前所述,tail 命令是实时显示日志的最常用的方法。不过该命令有两个版本,如下所示。

第一个例子是为 tail 命令加上 -f 参数。

$ sudo tail -f /var/log/apache2/access.log

第二个例子就是 tailf 命令。它本身内建了 -f 参数,因此你无需再为它指定 -f 参数。

$ sudo tailf /var/log/apache2/access.log

通常 Linux 服务器上的日志都是轮转日志。这种情况下,你需要用 -F 参数。

如果您正在学习Spring Boot,推荐一个连载多年还在继续更新的免费教程:http://blog.didispace.com/spring-boot-learning-2x/

tail -F 会监控是否创建了新日志(所谓新日志指的是同一个名字,但是 fd 不一样的日志文件),并且会转而显示新日志的内容,而不是老文件的内容。

$ sudo tail -F /var/log/apache2/access.log

然而,默认情况下 tail 命令只会显示文件最后 10 行的内容。如果你只想在实时模式下查看最后两行的内容,那么可以连用 -n-f 参数,如下这样:

$ sudo tail -n2 -f /var/log/apache2/access.log

2. Multitail Command – Monitor Multiple Log Files in Real Time

另一个好玩的命令是 Multitail Command。从名字中就能看出它可以实时监控多个日志,Multitail 还能让你前后翻阅被监控的文件。

使用下面命令可以在基于 Debian 或 RedHat 的系统中安装 Mulitail。

$ sudo apt install multitail   [On Debian & Ubuntu]
$ sudo yum install multitail [On RedHat & CentOS]
$ sudo dnf install multitail [On Fedora 22+ version]

下面例子演示了如何同时显示两个日志文件。

$ sudo multitail /var/log/apache2/access.log /var/log/apache2/error.log

3. lnav Command – Monitor Multiple Log Files in Real Time

另一个类似 Multitail 的命令是 Lnav,Lnav 也能实时监控多个文件。

使用下面命令可以在基于 Debian 或 RedHat 的系统中安装 Lnav。

$ sudo apt install lnav   [On Debian & Ubuntu]
$ sudo yum install lnav [On RedHat & CentOS]
$ sudo dnf install lnav [On Fedora 22+ version]

使用 Lnav 同时查看两个日志的方法如下:

$ sudo lnav /var/log/apache2/access.log /var/log/apache2/error.log

4. less Command – Display Real Time Output of Log Files

最后你可以用 less 命令 查看日志文件,然后按下 Shift+F 也能实时查看日志内容。

tail 一样, 在 less 中按下 Shift+F 会追踪文件末尾的内容。你也可以在调用 less 命令时就加上 +F 参数。

sudo less + F /var/log/apache2/access.log

下面是其他一些关于日志监控与管理的文章,值得一读。

  • Manage Files Effectively using head, tail and cat Commands in Linux
  • How to Setup and Manage Log Rotation Using Logrotate in Linux
  • Petiti – An Open Source Log Analysis Tool for Linux SysAdmins
  • How to Query Audit Logs Using ‘ausearch’ Tool on CentOS/RHEL
  • Manage Log Messages Under Systemd Using Journalctl {Comprehensive Guide}
文章目录
  1. 1. 1. tail Command – Monitor Logs in Real Time
  2. 2. 2. Multitail Command – Monitor Multiple Log Files in Real Time
  3. 3. 3. lnav Command – Monitor Multiple Log Files in Real Time
  4. 4. 4. less Command – Display Real Time Output of Log Files