printk 与syslog

 

 1> 所有系统信息是输出到ring buffer中去的.dmesg所显示的内容也是从ring buffer中读取的

 

 2> LINUX系统启动后,由/etc/init.d/sysklogd先后启动klogd,syslogd两个守护进程。

  2.1> klogd会通过syslog()系统调用或者读取proc文件系统(/proc/kmsg)来从系统缓冲区(ring buffer)中得到由内核printk()发出的信息

     2.2> Klogd的输出结果会传送给syslogd进行处理,syslogd会根据/etc/syslog.conf的配置把log信息输出到/var/log/下的不同文件中

 3> 当printk指定的优先级(DEFAULT_MESSAGE_LEVEL 4)小于指定的控制台优先级console_logleve(DEFAULT_CONSOLE_LOGLEVEL 7)l时,调试消息就显示在控制台虚拟终端,修改当前控制台优先级可以使用:dmesg -n x,kmsg -c x(重启生效),修改/proc/sys/kernel/printk

 4 >printk的输出会被输出到默认console上,比如启动的时候将串口指定为默认的console后,就会输出到串口

posted @ 2012-03-04 17:43  only_eVonne  阅读(1079)  评论(0编辑  收藏  举报