1

我想更改 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.

我拥有的 1 个解决方案就是编辑 printk proc 文件,例如 -

echo 0 >/proc/sys/kernel/printk

但我想要一个Kernel SpaceAPI 来做到这一点。

我也用过setlogmask,但是没用。

Is do_syslog works here ??

如果是那怎么办??

我正在编写一个 prog 文件来执行此操作,就像我想通过该 proc 文件更改 dmesg 的日志级别。那么有什么想法吗?

提前致谢..

4

1 回答 1

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... ");

请参阅此处以设置内核日志级别。

于 2013-05-07T09:45:06.460 回答