更改printk列印級別

2021-06-20 13:45:09 字數 2304 閱讀 5077



1、檢視當前控制台的列印級別

cat /proc/sys/kernel/printk

4    4    1    7

其中第乙個「4」表示核心列印函式printk的列印級別,只有級別比他高的資訊才能在控制台上列印出來,既 0-3級別的資訊

2、修改列印

echo "新的列印級別  4    1    7" >/proc/sys/kernel/printk

了解了上面的這些知識後,我們就應該知道如何手動控制printk列印了。例如,我想遮蔽掉所有的核心printk列印,那麼我只需要把第乙個數值調到最小值1或者0。

# echo 1       4       1      7 > /proc/sys/kernel/printk

或者# echo 0       4       0      7 > /proc/sys/kernel/printk

3、不夠列印級別的資訊會被寫到日誌中可通過dmesg 命令來檢視

4、printk的列印級別

#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 */

在 /proc/sys/kernel/printk 會顯示4個數值(可由 echo 修改),分別表示當前控制台日誌級別、未明確指定日誌級別的預設訊息日誌級別、最小(最高)允許設定的控制台日誌級別、引導時預設的日誌級別。當 printk() 中的訊息日誌級別小於當前控制台日誌級別時,printk 的資訊(要有/n符)就會在控制台上顯示。但無論當前控制台日誌級別是何值,通過 /proc/kmsg (或使用dmesg)總能檢視。另外如果配置好並執行了 syslogd 或 klogd,沒有在控制台上顯示的 printk 的資訊也會追加到 /var/log/messages.log 中。

5、printk函式的使用

printk(列印級別  「要列印的資訊」)

列印級別  既上面定義的幾個巨集

char myname = "chinacodec/n";

printk(kern_info "hello, world %s!/n", myname);

在linux圖形介面下,是無法在命令列下顯示的,嘗試切換到命令列模式下就可以在終端顯示了

切換方法:

不同的linux系統切換方式會稍有一點差別

從圖形介面切換到字元介面:alt+f(1-6) 或者 alt+ctrl+shift+f(1-6)

從字元介面切換回圖形介面:alt+f7

字元介面啟動到圖形介面使用:startx 或者 init5

(開機為文字介面,由文字介面切換到圖形介面:

方法1:執行命令

#startx , 需要先配置圖形介面資訊,(暫時不會~) ;

方法2:修改/etc/inittab檔案中的

id:3:initdefault , 將3改為5 ,重新啟動系統;

真機環境中,在圖形介面和文字介面間切換:

ctrl+alt+f(n) , 其中f(n)為f1-f6 ,為6個控制台;

ctrl+alt+f7 ;

虛擬機器環境,在圖形介面和文字介面間切換:

vmware虛擬機器下,由圖形介面切換到文字介面,和虛擬機器設定有關,預設vm占用ctrl+alt為熱鍵,所以由圖形介面切換到文字介面的組合鍵為:

ctrl+alt+shift+f(n) ,其中f(n)為f1-f6 ;

由文字介面切換回圖形介面的組合鍵為:

alt+f7 ;

在文字介面不同控制台介面之間切換:

alt+f(n) , 其中f(n)為f1-f6,為6個控制台)





更改printk列印級別

1 檢視當前控制台的列印級別 cat proc sys kernel printk 4 4 1 7 其中第乙個 4 表示核心列印函式printk的列印級別,只有級別比他高的資訊才能在控制台上列印出來,既 0 3級別的資訊 2 修改列印 echo 新的列印級別 4 1 7 proc sys kerne...

更改printk列印級別

1 檢視當前控制台的列印級別 cat proc sys kernel printk 4 4 1 7 其中第乙個 4 表示核心列印函式printk的列印級別,只有級別比他高的資訊才能在控制台上列印出來,既 0 3級別的資訊 2 修改列印 echo 新的列印級別 4 1 7 proc sys kerne...

printk列印級別輸出

核心的列印函式和使用者空間的列印函式是相同的,只是關鍵字不太一樣,核心是printk,而使用者空間則是printf。在核心空間只不過有乙個列印級別的設定,所謂的列印級別不過是幾個巨集定義 printk的列印級別一共有8個級別 數字越 明列印級別越高 define kern emerg 0 syste...