天天看點

linux printk 優先級,printk與日志優先級設定

1. 控制台的日志優先級

#define KERN_EMERG                  "<0>"       

#define KERN_ALERT                    "<1>"       

#define KERN_CRIT                        "<2>"      

#define KERN_ERR                        "<3>"        

#define KERN_WARNING              "<4>"        

#define KERN_NOTICE                  "<5>"       

#define KERN_INFO                       "<6>"         

#define KERN_DEBUG                   "<7>"       

printk函數中能夠指定優先級,假如printk沒有指定優先級,采用預設優先級,DEFAULT_MESSAGE_LEVEL 4,y也可以是上述優先級中的;

預設的console_loglevel值是DEFAULT_CONSOLE_LOGLEVEL 7。

當printk指定的優先級(DEFAULT_MESSAGE_LEVEL 4)小于指定的控制台優先級console_logleve(DEFAULT_CONSOLE_LOGLEVEL 7)時,調試消息就顯示在控制台虛拟終端

2. 檢視日志等級資訊

通過讀寫/proc/sys/kernel/printk檔案來讀取控制台的日志資訊;

[[email protected] /]# cat /proc/sys/kernel/printk

4       4       1       7

(1) 控制台日志級别:優先級高于該值的消息将被列印至控制台。

(2) 預設的消息日志級别:将用該值來列印沒有優先級的消息。

(3) 最低的控制台日志級别:控制台日志級别可能被設定的最小值。

(4) 預設的控制台:控制台日志級别的預設值。

3. 設定日志等級資訊

根據第2小節的描述,隻需設定第一個值既可以,例如:

[[email protected] /]# echo 5 >/proc/sys/kernel/printk

[[email protected] /]# cat /proc/sys/kernel/printk

5       4       1       7

[[email protected] /]#

4. 設定列印速度

設定速度的典型調用。:

if (printk_ratelimit())

printk(…………);

通過修改/proc/sys/kernel/printk_ratelimit設定重新列印消息之前應該等待的秒數,預設為5;

通過修改/proc/sys/kernel/printk_ratelimit_burst設定進行速度限制之前可以接收的消息數,預設為10;