Linux内核通过 printk() 输出的信息具有日志级别,内核中共提供了八种不同的日志级别,
在 Linux/kernel.h 中有相应的宏对应。
#define KERN_EMERG "<0>" /* system is unusable */
#define KERN_ALERT "<1>" /* action must be taken immediately */
#define KERN_CRIT "<2>" /* critical conditions */
#define KERN_ERR "<3>" /* error conditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normal but significant */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
通过读写/proc/sys/kernel/printk文件可以读取、修改控制台的日志级别。
查看这个文件:
cat /proc/sys/kernel/printk
上面显示的数字:6、7、1、6分别对应控制台日志级别、默认的消息日志级别、最低的控制台日
志级别和默认的控制台日志级别。
下面介绍一下Linux下日志管理,Linux下的日志采用先分类,然后在每个类别下分级的管理模式。
主要的七种日志分类:
名称 | 含义 |
---|---|
authpriv | 安全认证相关 |
cron | at和cron定时任务相关 |
deamon | 定时任务相关 |
kern | 内核产生 |
lpr | 打印系统产生 |
邮件系统产生 | |
syslog | 日志服务本身 |
八种日志级别(按照由低到高顺序排列):
级别 | 含义 |
---|---|
debug | 排错信息 |
info | 正常信息 |
notice | 稍微要注意的 |
warn | 警告 |
err(error) | 错误 |
crit(critical) | 关键的错误 |
alert | 警报警惕 |
emerg(emergence) | 紧急突发事件 |
在RHEL6中日志由系统服务rsyslog进行管理和控制。最小化安装RHEL6后,rsyslog服务默认是开启的。
chkconfig --list | grep rsyslog
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
配置文件/etc/rsyslog.conf,管理了日志打印的相应配置。
若想printk打印到虚拟终端,需配置:
kern.alert -/dev/pts/0
便会将printk打印的消息输出到虚拟终端0上。