1.printk日誌級別的來源
其實printk的基本原理我是通過韋東山的視頻和一篇CSDN博客瞭解到的
博客鏈接貼在下面:
https://blog.csdn.net/W1107101310/article/details/80526039
博客寫得很詳細,該博客主要分爲如下幾個部分:
printk原理/控制檯的選擇/printk日誌級別的設置
下面依次說一下這幾個宏的含義:
console_loglevel:控制檯當前日誌級別,從上一篇printk原理中知道,只有printk自帶的級別小於此值,printk纔會調用控制檯驅動打印,即,只有當printk("<n>...")中的n < console_loglevel時纔會打印
default_message_loglevel:默認消息日誌級別,從上一篇printk原理中知道,當printk中不帶顯示的日誌級別時,代碼會自動在log_buf中加上這個級別,即,如果默認消息日誌級別是n且printk中無日誌級別,系統自動加爲printk("<n>...")
minimum_console_loglevel:最小控制檯日誌級別:如果更改控制檯日誌級別不能小於此值
default_console_loglevel:默認控制檯日誌級別
2.printk日誌級別的設置
一般來說,修改printk的日誌級別有三種方法:
1).直接修改內核源碼(不提倡)
2).修改bootargs啓動參數(https://blog.csdn.net/W1107101310/article/details/80526039)
3).要將設置的值寫入proc系統/proc/sys/kernel/printk
我們再來看一下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 condition */
#define KERN_INFO "<6>" /* informational */
#define KERN_DEBUG "<7>" /* debug-level messages */
Q:那麼KERN_DEBUG級別的打印要怎麼體現出來呢?
A:可以將console_loglevel改到8或者10甚至更高,因爲它就是個int類型的值嘛
所以,一般我們可以這樣使用printk:
3.你還在使用printk嗎?
未完......