linux下更改printk的打印级别和优先级

printk向用户空间的输出,两个守护进程syslogd和klogd用于处理日志信息。小于控制台级别的信息会被输出到console,而大于控制台级别的信息不输出,只是写入/var/log/messages和/proc/kmsg中。可以通过dmesg查看。

1.查看当前控制台日志信息的打印级别:
$ cat /proc/sys/kernel/printk
4 4 1 7
分别对应:当前的日志级别、未明确指定日志级别时默认消息级别、最小允许的日志级别、引导时的默认日志级别。
2.若需要需改当前的日志打印日志级别为7,则修改打印的命令如下:
(1).echo 7 > /proc/sys/kernel/printk

(2).klogd -c 7 需要先关闭klogd,用ps -C klogd 查出这个进程的pid,然后kill。(注:printk函数将消息写到一个长度为__LOG_BUF_LEN字节的循环缓冲区中,然后唤醒任何睡眠在syslog系统调用或正在读取/proc/kmsg的进程。循环缓冲区满了以后,会绕回开始处填写新的内容。printk()可以在中断中调用。当printk()的调用频率过高时,还可以通过printk_ratelimit()限制输出)。

3.不够打印级别的信息会被写到日志中可通过dmesg 或者 cat /proc/kmsg查看。
4.printk的打印级别定义在include/linux/Printk.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 condition */
#define KERN_INFO   "<6>"   /* informational            */
#define KERN_DEBUG  "<7>"   /* debug-level messages         */

5.printk打印优先级别由KERN_EMERG开始往下依次递减,即数字越小优先级越高。
6.全志平台下更改开机默认日志优先级级别,lichee/tools/pack/chips/sun8iw5p1/configs/default/env.cfg文件中修改,修改如下:

 9 loglevel=7
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

androidSystemDever

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值