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