8.10 用syslog记录日志
日志文件是那些为用户提供服务的应用程序的重要组成部分。应用程序在运行时将状态信息写入日志文件。如果程序崩溃或者当我们需要查询服务的相关信息时,就可以借助日志文件。在/var/log目录中,你可以找到与各种守护进程和应用程序相关的日志文件。/var/log是存储日志文件的公共目录。如果你读过日志文件,你就会看出它们都采用了一种通用的格式。在Linux系统中,在 /var/log中创建并写入日志信息是由被称为syslog
的协议处理的。它由守护进程sylogd
负责执行。每一个标准应用进程都可以用syslog
记录日志信息。在这则攻略中,我们将讨论如何在脚本中用syslogd
记录日志信息。
8.10.1 新手上路
日志文件有助于我们推断系统出现了什么故障。因此在编写重要的应用程序时,应当将应用进程的执行过程记录在日志文件中,要养成这个良好的实践习惯。我们接下来将要学习用命令logger
通过syslogd
记录日志。在学习如何往日志文件中写入信息之前,让我们先看看Linux中一些重要的日志文件,如表8-4所示。
表 8-4
日志文件 | 描 述 |
---|---|
/var/log/boot.log | 系统启动信息 |
/var/log/httpd | Apache Web服务器日志 |
/var/log/messages | 发布内核启动信息 |
/var/log/auth.log | 用户认证日志 |
/var/log/dmesg | 系统启动信息 |
/var/log/mail.log | 邮件服务器日志 |
/var/log/Xorg.0.log | X服务器日志 |
8.10.2 实战演练
要向syslog
文件 /var/log/messages中记录日志信息,可以使用:
- $ logger LOG_MESSAGE
例如:
- $ logger This is a test log line
- $ tail -n 1 /var/log/messages
- Sep 29 07:47:44 slynux-laptop slynux: This is a test log line
/var/log/messages是一个一般用途的日志文件。如果使用logger
命令,它默认记录日志信息到 /var/log/messages中。如果要记录特定的标记(tag),可以使用:
- $ logger -t TAG This is a message
- $ tail -n 1 /var/log/messages
- Sep 29 07:48:42 slynux-laptop TAG: This is a message
Syslog
处理/var/log下的多个日志文件。但是当logger
发送消息时,它用标记字符串来确定应该记录到哪一个日志文件中。syslogd
使用与日志相关联的TAG来决定应该将其记录到哪一个文件中。你可以从位于/etc/rsyslog.d/目录的配置文件中看到与日志文件相关联的标记字符串。
要将另一个日志文件的最后一行记录到系统日志中,可以使用:
- $ logger -f /var/log/source.log
8.10.3 参考
3.14节讲解了head
和tail
命令。