chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux內核printk日志級別全解析:從參數(shù)解讀到實操配置

jf_44130326 ? 2025-11-20 15:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、開篇:一個命令引出的核心問題

Linux終端執(zhí)行cat /proc/sys/kernel/printk,你可能會看到這樣的輸出:

wKgZO2kc_MqAHvRAAAADO3gPLnk932.png

這串數(shù)字不是隨機的,而是內核日志系統(tǒng)的“核心配置開關”——它直接決定了printk(內核打印函數(shù))的日志輸出行為。如果你是嵌入式開發(fā)者、內核調試工程師,或經常需要排查驅動/系統(tǒng)問題,理解這串數(shù)字和printk輸出等級,能讓你高效篩選關鍵日志,避免被無效信息淹沒。

二、先搞懂:什么是printk輸出等級?

printk是Linux內核的“調試利器”,類似用戶態(tài)的printf,但多了一個核心特性——輸出等級(Log Level)。

它的本質是給日志貼“優(yōu)先級標簽”,核心作用有兩個:

1.控制輸出渠道:只有日志等級≥內核“控制臺日志級別”時,才會實時打印到控制臺(串口/終端);否則僅存入內核緩沖區(qū)(需用dmesg查看)。

2.區(qū)分信息重要性:從致命崩潰到調試細節(jié),8個等級幫你快速定位關鍵問題(比如優(yōu)先關注錯誤級日志,忽略調試級冗余信息)。

三、8個輸出等級:數(shù)值越小,越緊急!

Linux內核在中定義了8個標準輸出等級,數(shù)值0~7,數(shù)值越小優(yōu)先級越高(0級為系統(tǒng)崩潰級,7級為調試級)。每個等級都有明確的使用場景,對應關系如下:

等級宏 數(shù)值 英文含義 中文說明 典型場景
KERN_EMERG 0 system is unusable 緊急情況(系統(tǒng)不可用) 內核崩潰、致命硬件錯誤(如內存耗盡掛起)
KERN_ALERT 1 action must be taken immediately 必須立即處理的警報 關鍵資源耗盡(磁盤滿)、權限驗證失敗
KERN_CRIT 2 critical conditions 嚴重錯誤 文件系統(tǒng)損壞、進程調度異常
KERN_ERR 3 error conditions 普通錯誤 驅動初始化失敗、函數(shù)調用關鍵錯誤
KERN_WARNING 4 warning conditions 警告(潛在問題) 參數(shù)非法、內存分配警告(非致命)
KERN_NOTICE 5 normal but significant 通知(重要正常事件) 模塊加載/卸載、系統(tǒng)啟動關鍵步驟
KERN_INFO 6 informational 信息性消息 驅動版本、硬件探測結果
KERN_DEBUG 7 debug-level messages 調試消息 開發(fā)者調試(函數(shù)進出、變量值打印)

小細節(jié):每個等級宏本質是帶優(yōu)先級的字符串,比如KERN_ERR等價于<3>,所以printk(KERN_ERR "xxx")也可以寫成printk("<3>xxx")。

四、深度解讀:/proc/sys/kernel/printk的4個參數(shù)

回到開篇的輸出7 4 1 7,這4個參數(shù)順序固定,分別對應內核日志的4個核心配置(從左到右):

1.控制臺日志級別(console_loglevel):7

?核心作用:決定哪些日志會實時輸出到控制臺。

?規(guī)則:日志等級≤該值時,直接打印到控制臺(數(shù)值越大,輸出越全)。

?你的系統(tǒng)配置:7表示所有8個等級的日志(0~7)都會實時顯示,適合調試場景(默認通常為4,僅輸出警告及以上)。

2.默認消息日志級別(default_message_loglevel):4

?核心作用:printk未顯式指定等級時,自動使用的默認等級(對應KERN_WARNING)。

?示例:printk("無等級日志")等價于printk(KERN_WARNING "無等級日志")。

3.最小控制臺日志級別(minimum_console_loglevel):1

?核心作用:限制控制臺日志級別的“最低值”(不能低于1)。

?意義:避免誤操作將級別設為0(僅顯示緊急級),導致遺漏關鍵日志。

4.默認控制臺日志級別(default_console_loglevel):7

?核心作用:內核啟動時的默認控制臺級別,也作為重置參考值。

五、實操指南:日志級別配置與日志查看

1.臨時修改控制臺日志級別(立即生效)

?需求1:顯示所有日志(調試用):

echo7 > /proc/sys/kernel/printk

?需求2:僅顯示錯誤及以上(減少冗余):

echo3> /proc/sys/kernel/printk # 僅輸出0~3級(緊急/警報/嚴重錯誤/普通錯誤)

?需求3:恢復默認配置(假設默認是4):

echo4417> /proc/sys/kernel/printk

2.永久修改(重啟不失效)

臨時修改會在重啟后失效,需寫入配置文件:

# 編輯 sysctl 配置文件vi/etc/sysctl.conf# 添加以下內容(根據(jù)需求調整數(shù)值)kernel.printk =4417# 生效配置sysctl-p

3.日志查看方式(3種常用)

?實時查看控制臺日志:直接在終端觀察(僅顯示符合級別要求的日志)。

?查看內核緩沖區(qū)日志:dmesg(顯示所有等級日志,包括未輸出到控制臺的),搭配過濾更高效:

dmesg| grep"ERR"# 篩選錯誤級日志dmesg -w # 實時監(jiān)控日志

?查看持久化日志文件:多數(shù)發(fā)行版會將內核日志寫入/var/log/kern.log,可用tail實時跟蹤:

wKgZO2kc_MqANFNFAAAbUD_1glY903.png

六、開發(fā)實戰(zhàn):printk正確用法

1.基本語法(必須指定等級宏)

#include// 包含等級宏定義// 錯誤級日志:驅動初始化失敗printk(KERN_ERR"網卡驅動初始化失?。涸O備節(jié)點不存在n");// 調試級日志:打印變量值intbuf_size =1024;printk(KERN_DEBUG"緩沖區(qū)大?。?d 字節(jié)n", buf_size);// 未指定等級(默認 KERN_WARNING)printk("參數(shù)校驗警告:數(shù)值超出范圍n");

2.避坑指南

?不要濫用KERN_DEBUG:調試完成后建議刪除或注釋,避免占用內核緩沖區(qū)。

?關鍵錯誤必須用高等級:比如驅動加載失敗用KERN_ERR,而非KERN_INFO,確保不會被過濾。

?結合日志工具:復雜場景可搭配syslogd或klogd守護進程,自定義日志存儲規(guī)則。

七、總結

printk輸出等級是Linux內核日志的“優(yōu)先級管理系統(tǒng)”,8個等級+ 4個核心參數(shù),共同決定了日志的輸出行為。記住核心邏輯:

?數(shù)值越小,優(yōu)先級越高;

?控制臺日志級別≥日志等級時,才會實時輸出;

?調試用KERN_DEBUG+級別7,生產環(huán)境用KERN_ERR+級別3~4。

掌握這些知識,無論你是調試內核模塊、排查驅動問題,還是優(yōu)化系統(tǒng)日志,都能更高效地定位關鍵信息,告別日志“大海撈針”!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    88

    文章

    11806

    瀏覽量

    219487
  • LINUX內核
    +關注

    關注

    1

    文章

    321

    瀏覽量

    23288
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux內核學習筆記:printk調試

    很多內核開發(fā)者喜歡的調試工具是printk,在Linux內核中,使用printk()函數(shù)來打印信息,它與C庫的printf()函數(shù)類似。
    發(fā)表于 06-01 15:14 ?1921次閱讀

    Linux內核調試方法的總結

    的方式指定一個LOG級別printk(KERN_CRIT “Hello, world!\n”);注意,第一個參數(shù)并不一個真正的參數(shù),因為其中沒有用于分隔
    發(fā)表于 05-20 10:30

    printk()函數(shù)的總結

    我們在使用printk()函數(shù)中使用日志級別為的是使編程人員在編程過程中自定義地進行信息的輸出,更加容易地掌握系統(tǒng)當前的狀況。對程序的調試起到了很重要的作用。(下文中的日志
    發(fā)表于 07-09 03:47

    linux內核打印函數(shù)printk的方法

    1.linux內核打印函數(shù)printk一、函數(shù)有頭文件二、定義的關鍵宏三、函數(shù)原型合理的創(chuàng)建標題,有助于目錄的生成如何改變文本的樣式插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創(chuàng)建一個
    發(fā)表于 12-20 07:02

    迅為RK3399開發(fā)板Android 系統(tǒng)--打印級別設置(printk日志等級設置)

    內核源碼 include/linux/kern_levels.h 文件中預定義了內核 log 等級,一共有八個等級, 0 到 7,優(yōu)先級依次降低,如下所示: // include/
    發(fā)表于 10-25 11:21

    Linux內核模塊介紹,使用Linux模塊的優(yōu)點

    內核通過 printk() 輸出的信息具有日志級別日志級別是通過在
    的頭像 發(fā)表于 03-30 15:53 ?8180次閱讀

    如何配置和使用Linux內核printk功能

    了解如何配置和使用Linux內核printk功能,包括其動態(tài)調試功能。 這樣可以選擇性地打印調試消息,而無需重新編譯內核
    的頭像 發(fā)表于 11-27 06:40 ?3729次閱讀

    內核日志printk結構淺析

    做DPDK項目時,調試rte_kni.ko時,發(fā)現(xiàn)printk并不會向我們想想的那樣把log信息顯示在我們的終端上。
    發(fā)表于 04-22 17:45 ?1638次閱讀

    你知道Linux內核調試關鍵技術之一的printk?

    內核調試技術之中,最簡單的就是printk的使用了,它的用法和C語言應用程序中的printf使用類似,在應用程序中依靠的是stdio.h中的庫,而在linux內核中沒有這個庫,所以在
    發(fā)表于 05-10 11:18 ?1943次閱讀

    Linux中的Printk與dmesg功能

    要將linux內核的帶級別控制的printk內容打印出來,在命令行輸入 dmesg -n 8 就將所有級別的信息都打印出來。
    發(fā)表于 04-02 14:39 ?640次閱讀

    介紹一下linux內核比較優(yōu)秀的調試方式KGDB

    printf相信學過C語言的同志再熟悉不過了,然而在linux內核開發(fā)中有一種非常簡潔的日志輸出函數(shù)叫-printk。
    的頭像 發(fā)表于 03-08 13:45 ?2770次閱讀

    Linux內核中如何修改printk等級

    KERN_SOH "7" /* 調試輸出 */ Linux內核printk定義了8個輸出等級, KERN_EMERG
    的頭像 發(fā)表于 09-27 15:56 ?3587次閱讀

    如何配置和驗證Linux內核參數(shù)

    Linux系統(tǒng)運維和性能優(yōu)化中,內核參數(shù)(sysctl)的配置至關重要。合理的參數(shù)調整可以顯著提升網絡性能、系統(tǒng)穩(wěn)定性及資源利用率。然而,
    的頭像 發(fā)表于 05-29 17:40 ?1337次閱讀

    基于 DR1M90 的 Linux-RT 內核開發(fā):編譯配置到 GPIO / 按鍵應用實現(xiàn)(1)

    本手冊由創(chuàng)龍科技研發(fā),針對 DR1M90,詳述 Linux-RT 實時內核開發(fā):含實時性測試(LinuxLinux-RT 對比、CPU 空載 / 滿負荷 / 隔離狀態(tài)測試)、
    的頭像 發(fā)表于 12-02 10:38 ?1287次閱讀
    基于 DR1M90 的 <b class='flag-5'>Linux</b>-RT <b class='flag-5'>內核</b>開發(fā):<b class='flag-5'>從</b>編譯<b class='flag-5'>配置</b>到 GPIO / 按鍵應用實現(xiàn)(1)

    Linux內核日志玩明白了嗎?printk調試神器解析

    日志等級機制,參數(shù)配置到實戰(zhàn)用法一次講透~一、printk與printf的差異用戶態(tài)的printf大家都熟,直接打印內容,簡單粗暴。但
    的頭像 發(fā)表于 12-19 08:32 ?1035次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內核</b><b class='flag-5'>日志</b>玩明白了嗎?<b class='flag-5'>printk</b>調試神器<b class='flag-5'>全</b><b class='flag-5'>解析</b>