調整核心printk的列印級別
有時除錯核心模組,列印資訊太多了,可以通過修改/proc/sys/kernel/printk檔案內容來控制。
預設設定是7 4 1 7
# cat /proc/sys/kernel/printk
7 4 1 7
該檔案有四個數字值,它們根據日誌記錄訊息的重要性,定義將其傳送到何處。關於不同日誌級別的更多資訊,請查閱syslog(2)聯機幫助。上面顯示的4個數據分別對應:
控制檯日誌級別:優先順序高於該值的訊息將被列印至控制檯
預設的訊息日誌級別:將用該優先順序來列印沒有優先順序的訊息
最低的控制檯日誌級別:控制檯日誌級別可被設定的最小值(最高優先順序)
預設的控制檯日誌級別:控制檯日誌級別的預設值
數值越小,優先順序越高
其實這四個值是在kernel/printk.c 中被定義的,如下:
int console_printk[4] = {
DEFAULT_CONSOLE_LOGLEVEL, /* console_loglevel */
DEFAULT_MESSAGE_LOGLEVEL, /* default_message_loglevel */
MINIMUM_CONSOLE_LOGLEVEL, /* minimum_console_loglevel */
DEFAULT_CONSOLE_LOGLEVEL, /* default_console_loglevel */
};
核心通過printk() 輸出的資訊具有日誌級別,日誌級別是通過在printk() 輸出的字串前加一個帶尖括號的整數來控制的,如printk("<6>Hello, world!\n");。核心中共提供了八種不同的日誌級別,在 Linux/kernel.h 中有相應的巨集對應。
#define KERN_EMERG "<0>" /* systemis unusable */
#define KERN_ALERT "<1>" /* actionmust be taken immediately */
#define KERN_CRIT "<2>" /*critical conditions */
#define KERN_ERR "<3>" /* errorconditions */
#define KERN_WARNING "<4>" /* warning conditions */
#define KERN_NOTICE "<5>" /* normalbut significant */
#define KERN_INFO "<6>" /*informational */
#define KERN_DEBUG "<7>" /*debug-level messages */
所以printk() 可以這樣用:printk(KERN_INFO"Hello, world!\n");。
未指定日誌級別的printk() 採用的預設級別是DEFAULT_MESSAGE_LOGLEVEL,這個巨集在kernel/printk.c 中被定義為整數4,即對應KERN_WARNING。
如果要想在核心啟動過程中列印少的資訊,就可以根據自己的需要在kernel/printk.c中修改以上數值,重新編譯即可!
/* printk's without a loglevel use this.. */
#define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING */
瞭解了上面的這些知識後,我們就應該知道如何手動控制printk列印了。例如,我想遮蔽掉所有的核心printk列印,那麼我只需要把第一個數值調到最小值1或者0。
# echo 1 4 1 7 > /proc/sys/kernel/printk
或者
# echo 0 4 0 7 > /proc/sys/kernel/printk
相關推薦
調整核心printk列印級別--減少啟動時的列印資訊
有時除錯核心模組,列印資訊太多了,可以通過修改/proc/sys/kernel/printk檔案內容來控制。預設設定是6 4 1 7 # cat /proc/sys/kernel/printk 7 4 1 7 該檔案有四個
調整核心printk的列印級別
有時除錯核心模組,列印資訊太多了,可以通過修改/proc/sys/kernel/printk檔案內容來控制。 預設設定是7 4 1 7 # cat /proc/sys/kernel/printk 7 4 1 7 該檔
更改printk列印級別
1、檢視當前控制檯的列印級別 cat /proc/sys/kernel/printk 4 4 1 7 其中第一個“4”表示核心列印函式printk的列印級別,只有級別比他高的資訊才能在控制檯上打印出來,既 0-3級別的資訊 2、修改列印 ech
linux核心列印級別
轉載地址:https://www.cnblogs.com/Caden-liu8888/p/5652168.html 1.printk()是一個核心的一個記錄日誌的機制,經常用來記錄資訊或者警告。printk可以指定輸出日誌的優先順序,在include/linux/kern_levels.h中有相
printk:核心中列印函式的使用
核心中列印函式的使用 printk(列印級別 “格式化輸出”,...); printk(“格式化輸出”,...); 列印級別: #define KERN_EMERG "<0>" /* system is unu
printk除錯之設定日誌列印級別
日誌列印注意事項: 1. 日誌輸出是有代價的,特別是在嵌入式系統,或者對執行時序要求較高的應用場景。因此 a) 只有在需要的地方加入,不能濫用 b) 一定要有一個全域性的開關,在不需要或者產品釋出的時候,關閉輸出,或者降低日誌輸出
限制核心printk的列印頻率
在很多時候我們需要限制printk的列印頻率,避免除錯資訊刷屏。有如下方法可以使用。 1.使用printk_rateelimit() 用法舉例: if(printk_rateelimit()) printk("xxxx"); 預設限制頻率是5秒10次列印
printk 核心除錯 訊息級別
核心除錯相比於使用者程式除錯難度就要大很多。 LINUX 是 C 語言寫的,但不能使用 printf 來列印,原因很容易解釋,核心中不認識庫 檔案中的 printf 函式。 最普通的除錯技術是監視,即在應用程式中的適當地方呼叫 printf 顯示監視資訊,這 是針對普通應用
在Ubuntu上開發編譯核心模組以及除錯核心模組,並檢視printk列印的訊息
Ubuntu上開發編譯核心模組以及除錯核心模組,並檢視printk列印的訊息 前言:在開發中,為了方便,其實我們是可以先在ubuntu執行和測試核心模組,測試好了再用交叉編譯到ARM裝置上執行。下
log4j日誌列印級別動態調整
1,為什麼日誌列印級別要動態調整? 隨著專案越來越大,訪問量也越來越高,遇到問題時想要排查,可是日誌一開啟卻刷的太快太快,不好排查問題,有的時候甚至因為短時間列印日誌太多,嚴重影響了效能,這個時候日誌的列印級別的動態調整就相當有必要了,在不重啟專案的情況,不改動程式碼的情況下,通過Apollo動態配置就可
android 修改預設logcat列印級別
軟體版本:Android6.0 硬體平臺:MTK6797 關於系統預設的日誌級別問題,涉及到了一個系統屬性,就是persist.log.tag,那麼這個屬性是在哪裡初始化定義的呢? 在mtk原始碼的vendor/mediatek/p
Tomcat - 怎麼控制某個類或者包下的日誌列印級別
問題與分析 Tomcat是使用自己的日誌實現tomcat-juli.jar來列印日誌資訊的,日誌會被列印到catalina.out裡,除去你在專案裡自己使用的日誌框架外,由System.out,System.err或者printStackTrace()打印出來的資訊則是會被輸入到catalina.out裡,
[Spark--編碼]--如何設定日誌的列印級別
以下三種方式可以選擇有一種,但就經測試,最靠譜的方式是第三種結合第一種使用。 1、通過配置檔案 #log4j.rootLogger=WARN,console log4j.rootLogger=DEBUG, stdout # console log4j.appender.
JAVA程式碼如何設定SPARK的日誌列印級別
問題場景:在使用spark sql 增加where條件過濾時,會出現列印很多的被過濾掉的記錄(幾十萬條),導致跑spark sql 特別慢! var df2 = sqc.sql("SELECT * FROM T_COMMISIONRATEDEF WHERE T_INSURANCETYPE = '
/proc/sys/kernel/printk 列印log設定
/proc/sys/kernel/printk Printk 共有4個引數 Cat /proc/sys/kernel/printk 7 4 1 7 (1)第一個引數 7表示小於7優先順序訊息才會被輸出到控制檯。 (2)第二個引數4 表示預設的printk訊息優先級別
Android系統底層驅動除錯之資訊列印級別
(本文說明的平臺:msm8953,系統:Android N,其他平臺和系統可作為參考使用) 在Linux中除錯核心模組時使用printk函式來列印除錯資訊時,可以設定列印資訊的級別。那麼就肯定會有這樣一個設定,用於控制終端顯示的資訊級別的。這個是通過/proc/sys/
設定日誌列印級別
tomcat 日誌資訊分 為 兩 類 :一是執行中的日誌,它主要 記錄 執行的一些資訊,尤其是一些異常 錯誤 日誌資訊 。二是 訪問 日誌資訊,它 記錄 的 訪問 的 時間 , IP , 訪問 的 資 料等相 關 資訊。2.1 訪問日誌的配置預設 tomcat 不記錄訪
linux初學核心之列印訊息
核心版本:Linux version 3.0.15(cat /proc/version) 剛開始接觸程式設計,從第一句打印出hello world一直用的是printf,直到接觸linux核心,這一使用方法開始改變! printk()和printf()之間的一個
linux 核心時間列印
struct timespec ts; ts = current_kernel_time(); printk(KERN_ALERT "i=%d, channel=%d, %ld %ld\n", i, channel, ts.tv_sec, ts.tv_nsec); stru
控制Linux kernel啟動console的列印級別
235 /* 236 * This should be approx 2 Bo*oMips to start (note initial shift), and will 237 * still work even if initially too large, it will just take sli