1 内核调试信息的处理流程
printk ------------> ________________________________
| /proc/kmsg |
| [FIFO queue, length __LOG_BUF_LEN] |
|________________________________|
|
|
------------> klogd (read file)
|
|
/etc/syslog.conf -------------> syslogd -----------> /var/log/messages
2 可以通过读取/proc/kmsg文件,或者通过调用syslog函数来读取内核消息缓存。syslog不会将被读取的内核消息缓存文件清除。直接读取/proc/kmsg会清除被读取的内容,这相当于队列的dequeue操作。
3 klogd默认采用读取/proc/kmsg方法来获取内核信息。
4 dmsg命令可以用来dump内核消息缓存,同时不会改变其中内容。
5 syslogd读取/etc/syslog.conf 配置信息,以过滤由klogd派发过来的信息。将小于等于默认log serverity的内核信息记录在/var/log/messages文件中。
6 log serverity分为8级,0为最严重,如下:
KERN_EMERG 0
KERN_ALERT 1
KERN_CRIT 2
KERN_ERR 3
KERN_WARNING 4
KERN_NOTICE 5
KERN_INFO 6
KERN_DEBUG 7
在2.6.10重认的记录级别为KERN_WARNING