内核中的预定义内核log级别//include/Linux/kern _ levels.h # define kern _ soh ' 001 '/* asciistartofheader */# define kern _/* asciistartofheader 01 ' # define kern _ emerg kern _ soh '0'/* systemid actionmustbetetting dfinekern _ crit kern _ soh '2'/* critical conditions */# define kern _ err kern _ soh '3'/* erron error conditions warning conditions */# define kern _ notice kern _ soh '5'/* normalbutsignificantcondition */# define kern define kern _ debug kern _ soh '7'/* debug-level messages */# define kern _ default kern _ soh ' d '/* thedefaultkertkernet
0~127的各数字可以看作一个字符。 ’ 001’是八进制之一,被转换为十进制,也是1。
控制字符是出现在特定信息文本中,表示某个控制功能的字符。
在ASCII码中,0~31号和127号(共33个字符)是LF (换行符)、CR (换行符)、FF (分页符)、DEL )、BS (反向锯齿)、BEL (振铃)等控制字符或通信专用通信专用字符: SOH (句首)、EOT )、ACK )等。
printk打印消息控制//Linux/include/printk.h/* printk ' swithoutaloglevelusethis . */# define message _ log level _ default chis weshoweverythingthatismoreimportantthanthanthis . */# define console _ log level _ defary define console _ log level _ min1efineconsole _ log level _ default7------------------- log/* console _ log level */message _ log level _ default _ message _ log level,/* default _ message _ log 请参阅# define console _ log level (console _ printk [0] ) define default _ message _ message ) definedefault_message_loglevel ) console define default _ console _ log level (console _ printk [3] ) console _ clog
只有printk打印消息的log优先级高于console_loglevel时,才能输出到终端
default_message_loglevel
printk打印消息时的默认日志级别
minimum_console_loglevel
可以在console_loglevel中设置的最小值
default_console_loglevel
console_loglevel的默认值
1 .查看当前printk打印消息的日志级别# cat/proc/sys/kernel/printk # 7417“7417”,分别为console_loglevel、default _ mesest
2 .更改console_loglevel # echo8417/proc/sys/kernel/printk更改console _ log level的值,输入“8417”以更改终端上的所有打印消息
如果要阻止所有内核的printk打印,只需将第一个数字设置为最小值1或0即可。
# echo 1417/proc/sys/kernel/printk或
# echo 0407/proc/sys/kernel/printk printk打印示例将以下代码添加到驱动程序中,以验证内核打印级别和prink参数打印级别。
每个insmod、rmmod led模块的打印级别设置会产生不同的打印结果。
printk (kern _ emerg (1111111 kern _ emerg (n ) ); 打印(kern _ alert ' 2222 kern _ alert (n ); printk (kern _ crit (333333 kern _ crit (n ) ); printk (kern _ err (44444444 kern _ err (n ) ); printk (kern _ warning ' 55555 kern _ warningn ' ); printk (kern _ notice (66666 kern _ notice (n ) ); printk (kern _ info (77777 kern _ info (n ) ); printk (kern _ debug (88888 kern _ debug (n ) ); printk(9999no_fix(n ) ); 操作:
一次设置编译内核源时的默认打印级数。 【在kernel/printk.c中定义】
在echo 8417/proc/sys/kernel/printk insmod模块之后,打印信息如下:
1111111 KERN_EMERG
2222 KERN_ALERT
3333333 KERN_CRIT
44444444 KERN_ERR
55555 KERN_WARNING
66666 KERN_NOTICE
77777 KERN_INFO
888888 KERN_DEBUG
9999 no_fix