我们可以借助syslog函数将消息写入到/var/log/messages文件或其他配置好的文章。syslogd(系统日志守护进程)会监控程序提交的消息并对其进行处理。klogd(内核日志守护进程)负责监控内核提交的消息,并将内核消息记录到/var/log/messages。二者协作记录日志消息。每次启动linux时,这两个守护进程都会由/etc/rc.d/init.d中的初始化脚本启动。
#vi /etc/syslog.conf
daemon.info /var/log/messages
syslog.conf文件中每一行包括以下内容:
l 选择器, 用于表明应该记录哪些消息的一组单词。包括设备(用于指定选择哪种类型程序的代码,即生成该消息的程序类别)和优先级(又能够于指定选择记录的消息类型,更确切的说是表明该消息所代表事件的严重程度)。
l 动作,用于指定sysogd接收到与选择标准相匹配的消息时应该执行的动作,通常可以使消息要写入的文件名,或应该显示该消息的机器的用户名。
设备
设备描述 | 设备名 |
来自login等用户身份验证类程序的消息 | auth |
特殊目的(私有)用户身份验证消息 | auth-priv |
来自cron程序的消息(用于控制自动化得,调度后的任务) | cron |
来自未在此处列出的所有标准守护进程或服务器的消息 | deamon |
内核消息(由klogd捕捉) | kern |
打印服务器消息 | lpr |
邮件服务器消息(来自mail transfer agent) | mail |
新闻服务器消息 | news |
关于系统登录进程本身的消息 | syslog |
来自终端用户所启动程序的消息 | user |
来自uucp程序的消息 | uucp |
八个特定用途的类别信息,linux销售商和编程人员可能需要使用这些消息来定义通常类别信息之外的特定需求 | local0到local7 |
优先级
优先级描述 | 优先级名 |
无优先级 | none |
调试信息 | debug |
关于程序当前状态的报告消息 | info |
程序运行中产生了值得注意的事件 | notice |
程序中存在潜在问题的警告信息 | waring |
程序存在错误的通告 | err |
错误消息,可能会导致程序关闭的事件 | crit |
严重错误消息,会导致程序关闭并可能影响其他程序 | alert |
发生严重事件,并有导致系统崩溃的潜在危险 | emerg |
简单动作大概如下:
将消息写入某终端,该终端可以为从/dev/tty1到/dev/tty6的标准终端名,也可以为控制台设备,比如/dev/console。
将消息写入到指定用户列表中当前已登录用户的计算机屏幕。
将消息写入远程系统上的日志文件,这是通过在动作中使用符号@实现的。
下面给出一些例子:
#vi /etc/syslog.conf
authpriv.* /var/log/secure
将私有用户验证的消息对于任何优先级写入/var/log/messages.
*.info ;main.none ;authpriv.none /var/log/messages
匹配来自任何设备并且优先级为info(或更高)的消息,但来自mail的所有消息都被排除。
最后,在对syslog.conf修改完成后,记得通知syslogd和klogd重新读取该配置文件。