作為開發(fā)項目出了bug想要最快速定位到問題所在圃伶,查看日志是最好不過的了~(當然边翼,也要習慣在業(yè)務關鍵點設置日志),我們來看看最常用的查看日志的方法玷室。
實時日志:tail -f XXX.log
搜索關鍵字附近日志:cat -n filename | grep "關鍵字"
一桃煎、下面是查看日志的常用幾種命令和方式:
tail:
-n? 是顯示行號篮幢;相當于nl命令;例子如下:
? ? tail -100f test.log? ? ? 實時監(jiān)控100行日志
? ? tail? -n? 10? test.log? 查詢?nèi)罩疚膊孔詈?0行的日志;? ? tail -n +10 test.log? ? 查詢10行之后的所有日志;
head:?
跟tail是相反的为迈,tail是看后多少行日志三椿,而head是查看日志文件的頭多少行,例子如下:
? head -n 10? test.log? 查詢?nèi)罩疚募械念^10行日志;? head -n -10? test.log? 查詢?nèi)罩疚募俗詈?0行的其他所有日志;
cat:
? tac是倒序查看葫辐,是cat單詞反寫搜锰;例子如下:
? ? ? cat -n test.log |grep "debug"? 查詢關鍵字的日志(常用!~)
vim:
1耿战、進入vim編輯模式:vim filename? ? ? ? 2蛋叼、輸入“/關鍵字”,按enter鍵查找
? ? ? ? 3、查找下一個,按“n”即可
? ? ? ? 退出:按ESC鍵后狈涮,接著再輸入:號時狐胎,vi會在屏幕的最下方等待我們輸入命令
? ? ? ? wq! 保存退出
? ? ? ? q! 不保存退出
二、查看日志幾種常見的應用場景
場景一:按行號查看:過濾出關鍵字附近的日志
(1) cat -n test.log |grep "debug"? 得到關鍵日志的行號
(2) cat -n test.log |tail -n +92|head -n 20? 選擇關鍵字所在的中間一行. 然后查看這個關鍵字前10行和后10行的日志:
? ? ? ? ? ? tail -n +92表示查詢92行之后的日志
? ? ? ? ? ? head -n 20 則表示在前面的查詢結果里再查前20條記錄
場景二:根據(jù)日期查詢?nèi)罩?/h3>
(1) sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'? test.log
特別說明:上面的兩個日期必須是日志中打印出來的日志,否則無效
先 grep '2014-12-17 16:17:20' test.log 來確定日志中是否有該時間點
場景三:日志內(nèi)容特別多歌馍,打印在屏幕上不方便查看握巢,分頁/保存文件查看
(1)使用more和less命令,? ? ? ? ??
?如: cat -n test.log |grep "debug" |more? ? 這樣就分頁打印了,通過點擊空格鍵翻頁
(2)使用 >xxx.txt 將其保存到文件中,到時可以拉下這個文件分析
? ? ? ? ? ? 如:cat -n test.log |grep "debug"? >debug.txt
(1) sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'? test.log
特別說明:上面的兩個日期必須是日志中打印出來的日志,否則無效
先 grep '2014-12-17 16:17:20' test.log 來確定日志中是否有該時間點
(1)使用more和less命令,? ? ? ? ??
?如: cat -n test.log |grep "debug" |more? ? 這樣就分頁打印了,通過點擊空格鍵翻頁
(2)使用 >xxx.txt 將其保存到文件中,到時可以拉下這個文件分析
? ? ? ? ? ? 如:cat -n test.log |grep "debug"? >debug.txt