2013-05-07 62 views
1

我想改變dmesg的掩碼優先級,我只想打印那些優先級最高的消息。那麼如何以編程方式更改這些優先級?如何以編程方式更改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 Space API來做到這一點。

我也使用setlogmask,但它不工作。

Is do_syslog works here ??

如果是,那麼如何?

我正在寫一個prog文件來做到這一點,就像我想通過該proc文件更改dmesg的日誌級別。是否有任何想法做到這一點?

在此先感謝..

回答

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設置內核日誌級別。

+0

我不是在問這個問題,我想過濾僅僅顯示printk的KERN_WARN消息的dmesg。 – goodies 2013-05-08 04:16:26

+0

請參閱鏈接。 – Jeyaram 2013-05-08 04:42:51

+0

我已經通過了,但它沒有用,我正在寫一個PROC文件,所以我想要一些功能來做到這一點,一些內核API來改變日誌級別.. – goodies 2013-05-08 06:21:51

相關問題