2014-03-25 51 views
0

如果使用prink()打印內核消息並在控制檯讀取它,它看起來像這樣:prink()開頭的數字是什麼意思?

<6>[ 2809.666228] amp_enable: amp enable bypass(2) 
<6>[ 2809.666747] amp_enable: AMP_EN is set to 0 
<3>[ 2810.084296] init: untracked pid 4196 exited 
<3>[ 2810.873706] init: untracked pid 4817 exited 
<6>[ 2810.933923] msm_ta_detect_work: USB exit ta detection - frindex 
<6>[ 2817.483839] amp_enable: AMP_EN is set to 1 
<6>[ 2823.084022] adjust_soc: ibat_ua = -114500, vbat_uv = 4296066, soc = 95, batt_temp=302 
<6>[ 2823.669799] SLIM_CL: skip reconfig sequence 
<6>[ 2823.685578] amp_enable: amp enable bypass(2) 
<6>[ 2823.686372] amp_enable: AMP_EN is set to 0 

是什麼在每行開頭的數字是什麼意思?這是一種時間戳嗎?我如何解讀它?

+0

您是指'<3>'還是'[2809.666228]'部分? – Dai

+0

兩者的解釋會很好 – jiawen

+0

首先看起來像一個loglevel - http://www.makelinux.net/books/lkd2/ch18lev1sec3 –

回答

1

如前所述NG,所述< 3>和< 6>是日誌級別,其中< 3>是KERN_ERR和< 6>是KERN_INFO

以下是從http://tuxthink.blogspot.com/2012/07/printk-and-console-log-level.html中選出的列表。

0 KERN_EMERG 
1 KERN_ALERT 
2 KERN_CRIT 
3 KERN_ERR 
4 KERN_WARNING 
5 KERN_NOTICE 
6 KERN_INFO 
7 KERN_DEBUG 

下一個數字看起來是從系統啓動以來的秒數。當您看到這些消息時,您的系統是否在50分鐘前啓動?時間戳可以幫助我們追蹤任務花費了多長時間。例如,amp_enable: amp enable bypass(2)需要0.519ms才能完成。從第一個入口到第四個入口,花費了1.207478s。

<6>[ 2809.666228] amp_enable: amp enable bypass(2) 
<6>[ 2809.666747] amp_enable: AMP_EN is set to 0 
<3>[ 2810.084296] init: untracked pid 4196 exited 
<3>[ 2810.873706] init: untracked pid 4817 exited 

我通過訪問http://elinux.org/Printk_Times_Sample1瞭解到了這一點。