就将所有级别的信息都打印出来

金沙网址,要将linux内核的带等第决定的printk内容打印出来,在指令行 输入 dmesg -n 8
就将有着等级的音信都打字与印刷出来

Linux命令:dmesg  功用表达:展现开机音讯。

  语 法:dmesg [-cn][-s <缓冲区大大小小>]

  补充表明:kernel会将开机音讯囤积在ring
buffer中。您假若开机时来不如查看消息,可利用dmesg来查看。开机音信亦保存在/var/log目录中,名称叫dmesg的文本里。

  参 数:

  -c 突显音讯後,清除ring buffer中的内容。

  -s<缓冲区大小> 预设置为8196,刚好等于ring buffer的尺寸。

  -n 设置记录消息的层级。

printk() 使用验证

基本通过 printk() 输出的音信具备日志等第,日志品级是由此在 printk()
输出的字符串前加叁个带尖括号的整数来调节的,如 printk(“<6>Hello,
world!\n”);。
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 */
#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 */

因此 printk() 能够这样用:printk(KEENVISIONN_INFO “Hello, world!\n”);。

未钦点日志级其余 printk() 采纳的暗许等第是
DEFAULT_MESSAGE_LOGLEVEL,这一个宏在 kernel/printk.c 中被定义为整数
4,即对应KE奇骏N_WARNING。

在 /proc/sys/kernel/printk 会呈现4个数值(可由 echo
修改),分别表示前段时间调节台日志等第、未显明钦命日志级其余暗中认可新闻日志等第、最小(最高)允许设置的调控台日志等级、辅导时私下认可的日记等级。当
printk() 中的音信日志品级小于当前调控台日志品级时,printk
的音讯(要有\n符)就能够在调节台上显示。但随意当前调节台日志等级是何值,通过
/proc/kmsg (或行使dmesg)总能查看。其余若是布署好并运维了 syslogd 或
klogd,没有在支配台上展现的 printk 的音讯也会大增到
/var/log/messages.log 中。

透过读写/proc/sys/kernel/printk文件可读取和退换调整台的日记等级。查看那个文件的法子如下:

#cat /proc/sys/kernel/printk6 4 1 7

地点突显的4个数据分别对应调整台日志等级、暗中认可的音信日志级别、最低的调控台日志等第和私下认可的调节台日志等级。

可用下面的通令设置当前几日记等第:

# echo 8 > /proc/sys/kernel/printk

除此以外为了避防万一 printk() 须臾时被调用次数过多,能够经过 printk_ratelimit()
来支配速度。printk_ratelimit()
通过追踪发送到调节台的音信数量职业,当输出速度超越二个逼近值,就回去零。可经过修改
/proc/sys/kernel/{printk_ratelimit, printk_ratelimit_burst} 来调节
printk_ratelimit() 的计算。

printk_ratelimit() 的举世无双用法如下:

if (printk_ratelimit())

printk(KERN_INFO “Hello, world!\n”);

金沙网址 1

相关文章