赞
踩
1> 所有系统信息是输出到ring buffer中去的.dmesg所显示的内容也是从ring buffer中读取的.
2> LINUX系统中/etc/init.d/sysklogd会启动2个守护进程:Klogd&&Syslogd
3> klogd是负责读取内核信息的,有2种方式:
syslog()系统调用
直接的对/proc/kmsg进行读取(/proc/kmsg是专门输出内核信息的地方)
4> Klogd的输出结果会传送给syslogd进行处理,syslogd会根据/etc/syslog.conf的配置把log 信息输出到/var/log/下的不同文件中.
日志级别字符串:KERN_EMERG, KERN_ALERT, KERN_CRIT, KERN_ERR, KERN_WARNING, KERN_NOTICE, KERN_INFO, KERN_DEBUG. printk默认级别是DEFAULT_MESSAGE_LOGLEVEL(在kernel/printk.c中定义)。当优先级小于console_loglevel消息才会显示出来。
##是一个连接符号,用于把参数连在一起,例如:
> #define FOO(arg) my##arg
> FOO(abc) 相当于 myabc
#是“字符串化”的意思。出现在宏定义中的#是把跟在后面的参数转换成一个字符串,例如:
> #define STRCPY(dst, src) strcpy(dst, #src)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。