1. 程式人生 > >Ubuntu下檢視prink的輸出

Ubuntu下檢視prink的輸出

由於Linux核心的級別控制,導致printk列印的內容不一定都能從控制檯正常輸出,可以使用dmesg命令來輸出所有級別的資訊。

輸入: sudo dmesg –n 8 可以把所有日誌資訊輸出來

Linux命令:dmesg 功能說明:顯示開機資訊。

語 法:dmesg [-cn][-s <緩衝區大小>]

補充說明:kernel會將開機資訊儲存在ring buffer中。您若是開機時來不及檢視資訊,可利用dmesg來檢視。開機資訊亦儲存在/var/log目錄中,名稱為dmesg的檔案裡。

參 數:

-c 顯示資訊後,清除ring buffer中的內容。

-s<緩衝區大小> 預設定為8196,剛好等於ring buffer的大小。

-n 設定記錄資訊的層級。

printk中的8種日誌級別:

#define KERN_EMERG      "<0>"    /* system is unusable */
#define KERN_ALERT      "<1>"    /* action must be taken immediately */
#define KERN_CRIT       "<2>"    /* critical conditions */
#define KERN_ERR        "<3>"    /* error conditions */
#define KERN_WARNING    "<4>"    /* warning conditions */
#define KERN_NOTICE     "<5>"    /* normal but significant */
#define KERN_INFO       "<6>"    /* informational */
#define KERN_DEBUG      "<7>"    /* debug-level messages */

但是,上面所使用的辦法還不是最好的辦法, 因為在ubuntu下,即使改變了日誌級別,必須要切換到控制檯下才能看到輸出的資訊。

最好的辦法是開啟另外的一個終端,用一個終端不停地監視並且列印輸出當前系統的日誌資訊:

1 在終端下輸入:
2 while true
3 do
4     sudo dmesg -c
5     sleep 1
6 done
這樣這個終端就會每1秒檢視當前系統的日誌並清空