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”,這樣在系統啟動時,就打開了所有內核輸出。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
內核
+關注
關注
4文章
1466瀏覽量
42748 -
Linux
+關注
關注
88文章
11746瀏覽量
218828 -
系統
+關注
關注
1文章
1045瀏覽量
22272
發布評論請先 登錄
相關推薦
熱點推薦
Linux內核學習筆記:動態輸出調試
上篇說到printk調試,但printk是全局的,只能設置輸出等級。而動態輸出可以動態選擇打開某個內核子系統的輸出,可以有選擇性地打開某些模塊的輸出。
發表于 06-01 15:16
?1110次閱讀
Linux內核3.5開發,一起了解一下
的優點1.用戶可以隨時擴展Linux系統的功能。2.當要修改當前Linux系統的驅動時,只需要卸載舊模塊,編譯目標驅動模塊,重新安裝插入即可。3.系統中如果需要使用新模塊,不必重新編譯
發表于 10-05 20:36
linux內核打印函數printk的方法
1.linux內核打印函數printk一、函數有頭文件二、定義的關鍵宏三、函數原型合理的創建標題,有助于目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創建一個
發表于 12-20 07:02
迅為RK3399開發板Android 系統--打印級別設置(printk日志等級設置)
在內核源碼 include/linux/kern_levels.h 文件中預定義了內核 log 等級,一共有八個
發表于 10-25 11:21
Linux內核模塊介紹,使用Linux模塊的優點
內核通過 printk() 輸出的信息具有日志級別,日志級別是通過在 printk() 輸出的字符串前加一個帶尖括號的整數來控制的,如 printk("Hello, world!/n"
如何配置和使用Linux內核printk功能
了解如何配置和使用Linux內核printk功能,包括其動態調試功能。
這樣可以選擇性地打印調試消息,而無需重新編譯內核。
你知道Linux內核調試關鍵技術之一的printk?
在內核調試技術之中,最簡單的就是printk的使用了,它的用法和C語言應用程序中的printf使用類似,在應用程序中依靠的是stdio.h中
發表于 05-10 11:18
?1905次閱讀
Linux中的Printk與dmesg功能
要將linux內核的帶級別控制的printk內容打印出來,在命令行輸入 dmesg -n 8 就將所有級別的信息都打印出來。Linux命令:dmesg 功能說明:顯示
發表于 04-02 14:39
?616次閱讀
Linux內核pr_xx()函數封裝
pr_xx( )封裝 在使用printk的時候需要手動添加輸出等級KERN_INFO、KERN_WARNING等,這樣還是有些麻煩。因此,Linux內核也對
Linux內核日志玩明白了嗎?printk調試神器全解析
前言:做Linux驅動開發或內核調試的朋友,一定對printk不陌生,但你真的會用它嗎?為什么同樣是調試RK3588內核,別人能精準捕捉關鍵錯誤,你卻被海量日志淹沒?今天就帶大家吃透
Linux內核中如何修改printk等級
評論