printk,printf 列印除錯

2021-08-30 11:37:20 字數 1004 閱讀 2124

includelinux/kernel.h

#define kern_emerg"<0>"      /*緊急事件訊息,系統崩潰之前提示,表示系統不可用*/

#define kern_alert"<1>"       /*報告訊息,表示必須立即採取措施*/

#define kern_crit"<2>"           /*臨界條件,通常涉及嚴重的硬體或軟體操作失敗*/

#define kern_err"<3>"            /*錯誤條件,驅動程式常用kern_err來報告硬體的錯誤*/

#define kern_warning"<4>"   /*警告條件,對可能出現問題的情況進行警告*/

#define kern_info"<6>"           /*提示資訊,如驅動程式啟動時,列印硬體資訊*/

#define kern_debug"<7>"       /*除錯級別的訊息*/

新增列印的方法:

printk :核心列印除錯函式,printk(kern_info "info/n");

printf : 應用程式開發除錯常用,printf("info/n");

可以通過命令 cat /proc/sys/kernel/printk來檢視當前開發板的log等級

獲取到的引數預設四個值: 4 4 1 7 

default_console_loglevel,   終端級別

default_message_loglevel,   預設級別

minimum_console_loglevel, 讓使用者使用的最小級別

default_console_loglevel,   預設終端級別

這幾個值在sysctl.conf中,系統啟動時就會將這幾個值寫入到 /proc/sys/kernel/printk中。

修改值方式 :

echo  0 4 1 7  > /proc/sys/kernel/printk 可以通過etho 的方式修改這個值

關於MapReduce中日誌不列印問題調查

map reduce專案中依賴了其他的專案,而這些專案有的使用了log4j的架構,有的使用了log4j2的架構,導致在hadoop client提交任務後無法顯示進度資訊,給除錯帶來困擾。為了解決這一問題,先嘗試了將log4j公升級到log4j2,後來發現hadoop中使用的是log4j,日誌還是沒...

spark調優 shuffle調優

基於spark1.6 引數可以通過 new sparkcontext set 來設定,也可以通過命令的引數設定 conf spark.shuffle.file.buffer 預設值 32k 引數說明 該引數用於設定shuffle write task的bufferedoutputstream的buf...

Spark Spark調優 資源調優

spark在乙個executor的記憶體分為三塊,1.一塊是execution記憶體 2.一塊是storge 記憶體 3.一塊是其他記憶體 執行記憶體是執行記憶體,加入,聚合都是在這部分記憶體中執行.shuffle的資料也會先快取在這個記憶體中,滿了再寫入磁碟,能減少io,其實地圖過程也是在這個記憶...