1.業務系統訪問量不是很大的時候,使用這個,有bug的地方操作下,直接看最后操作的日志,就是你剛才操作的地方,好好查bug吧
tail -fn100 catalina.log 查詢日志尾部最后100行的日志,並且隨文件;
2.查看服務器啟動情況,服務器啟動報錯,直接看前n行即可
head -n100 catalina.log 查詢日志文件中的頭10行日志;
3.按照關鍵字查找日志 (知道程序出問題的模塊,而且有日志關鍵字的可以用此方法)
<1>.找到發錯錯誤異常的行號
比如我們日志中關鍵字error表示錯誤
grep "error" -n access.log
或者cat -n catalina.log |grep "error"
這時候就會顯示很多匹配的行數,然后找到大約發生錯誤時間的對應行號
<2>通過行號查詢對應行前后的內容
例如:得到"error"關鍵字所在的行號是102行. 此時如果我想查看這個關鍵字前10行和后10行的日志:
cat -n catalina.log |tail -n +92|head -n 20
tail -n +92表示查詢92行之后的日志
head -n 20 則表示在前面的查詢結果里再查前20條記錄
或者 sed -n "92,112p" catalina.log
sed -n "開始行,結束行p" 文件名 查看文件多少行到多少行內容
4.通過時間查找 (不知道程序那里出問題了,只知道出問題的時間)
查詢一個時間字符串是否存在
grep “2017-06-21 10:00” test.log
查詢時間段內的日志
sed -n '/2017-06-21 09:25:55/,/2017-06-21 14:25:55/p' access.log
這個方法網上都說這個搞,但實際上我實踐的時候不能查出來什么,不知道為什么,如果不行只能查時間字符串
grep "2017-06-21 09:25:55" -n access.log
cat -n test.log |grep "error" |more
5.查詢日志結果如果太多可以分頁到導出文件
<1>使用more和less命令, 如: cat -n test.log |grep "error" |more 這樣就分頁打印了,通過點擊空格鍵翻頁
<2>使用 >look.txt 將其保存到文件中,到時可以拉下這個文件分析.如:
cat -n test.log |grep "地形" >look.txt
6.日志管理工具,以上方式只能解決服務器單節點問題,多節點日志分析不建議在服務器上一個個節點去查看,通常簡單的是運維定時合並同一業務類型日志到某一個目錄
同時也有一些開源的日志管理軟件可以幫你管理日志,很簡單的幫你實現分析,搜索
如開源的Graylog 2 Logstash Sumo Logic 收費的 Splunk 等
