printk等級
路徑:include/linux/kern_levels.h
#define KERN_EMERG KERN_SOH "0" /* 最高輸出等級,系統(tǒng)可能處于不可用的狀態(tài) */
#define KERN_ALERT KERN_SOH "1" /* 緊急和理科需要處理的輸出 */
#define KERN_CRIT KERN_SOH "2" /* 緊急情況 */
#define KERN_ERR KERN_SOH "3" /* 發(fā)生錯誤的情況 */
#define KERN_WARNING KERN_SOH "4" /* 警告 */
#define KERN_NOTICE KERN_SOH "5" /* 重要的提示 */
#define KERN_INFO KERN_SOH "6" /* 提示信息 */
#define KERN_DEBUG KERN_SOH "7" /* 調試輸出 */
Linux內核為printk定義了8個輸出等級,KERN_EMERG
等級最高,KERN_DEBUG
等級最低。在配置內核時,由一個宏來設置系統(tǒng)默認的輸出等級CONFIG_MESSAGE_LOGLEVEL_DEFAULT
,通常這個默認輸出等級為4
,因此只有輸出等級高于4時才會輸出到終端或者串口,即只有KERN_EMERG~KERN_ERR滿足這個條件。
通常在產(chǎn)品開發(fā)階段,會把系統(tǒng)默認等級設置為最低,以便在開發(fā)測試階段可以暴露更多的問題和調試信息,在發(fā)布產(chǎn)品時再把輸出等級設置為0或者4 。
修改printk等級
# cat /proc/sys/kernel/printk //printk默認有4個等級
7 4 1 7
四個數(shù)字分表代表:
控制臺輸出等級
默認消息等級
最低輸出等級
默認控制臺輸出等級
在系統(tǒng)運行時,我們也可以修改系統(tǒng)的輸出等級。打開所有的內核輸出:
echo 8 > /proc/sys/kernel/printk //打開所有的內核輸出
另外,還可以通過在啟動內核時傳遞commandline
給內核的方法來修改系統(tǒng)默認的輸出等級。例如,使用uboot引導內核時,可以在uboot傳參的bootargs
參數(shù)上,加上“loglevel=8
”,這樣在系統(tǒng)啟動時,就打開了所有內核輸出。
-
內核
+關注
關注
3文章
1382瀏覽量
40372 -
Linux
+關注
關注
87文章
11342瀏覽量
210140 -
系統(tǒng)
+關注
關注
1文章
1019瀏覽量
21397
發(fā)布評論請先 登錄
相關推薦
評論