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秒檢視當前系統的日誌並清空