我想更改dmesg的掩码优先级,我想只打印那些优先级最高的消息。那么如何以编程方式更改这些优先级呢?
Like if printk priority is KERN_ALERT or less than this then no message will printed in dmesg or console. I want only KERN_EMERG messages in dmesg.
我有的解决方案就是编辑printk proc文件,如 -
echo 0 >/proc/sys/kernel/printk
但我想要一个Kernel Space
API来执行此操作。
我也使用了setlogmask
,但它无效。
Is do_syslog works here ??
如果是,那么如何?
我正在编写一个prog文件来执行此操作,就像我想通过proc文件更改dmesg的日志级别。所以有什么想法吗?
提前致谢..
答案 0 :(得分:1)
有预定义的宏可用。
KERN_EMERG high priority low number
KERN_ALERT
KERN_CRIT
KERN_ERR
KERN_WARNING
KERN_NOTICE
KERN_INFO
KERN_DEBUG lo priority hi number
例如
printk(KERN_ALERT "Hello Module... ");
请参阅here以设置内核日志级别。