java開發工具(10)查日誌,你還在用vim,grep,sed麼?告訴你真正好用的less命令


我想現在許多人查日誌,剛開始的時候,都是直接使用grep命令,後面又接觸了vim,sed等命令,這些命令都是查看日誌的利器,但是其中也有部分缺陷,怎麼樣用正確的姿勢去又快又好地查看問題,這裏我將爲你介紹less命令,希望藉此,讓你查看問題的時間縮短,查看問題的效率升高

一、grep命令查看日誌有什麼不便?

我相信許多人,包括我自己在內,剛開始的時候,查看日誌,直接一個

grep '錯誤' 日誌.log

如果需要根據多個關鍵字查詢的話,再拼接grep命令,如果需要顯示上下行,再加上-A,-B或者-C參數。就會出現下上下關聯的日誌:
grep日誌
用grep日誌,你會發現這並不符合人類的閱讀習慣,上下5行你沒有看到具體問題,再上下100行,上下1000行,你自己最後都看暈了,甚至還看不出來問題點在哪裏。
試想,如果能像人類的閱讀文章一樣,可以自己翻頁閱讀,搜索查詢,這樣是不是體驗更好?也更容易定位到問題?

這個時候可能有人更換到vim了,覺得vim纔是王道,看日誌各種翻頁,各種方便。

二、vim很好用,但也有缺陷

vim的優點

vim確實是神器,樓主也用了一段時間,vim有如下功能

  • 通過"/"直接搜索關鍵字,還能支持正則表達式匹配
  • 通過“n”查找下一個,通過shift+n查找上一個匹配項
  • 通過“f”向下翻頁,通過“b”向上翻頁
  • 搜索的內容可以高亮顯示出來,一目瞭然
    展示一下,使用場景:
    vim搜索

樓主好幾年前,初識vim的時候,認定,就是它了,查日誌的利器,極大提升效率,果斷放棄grep命令。

vim的缺點

後來在使用過程中,樓主發現vim有一些缺點,這些缺點讓公司禁用了vim,命令,而樓主也感謝幸虧公司禁用了此命令,否則樓主還會一直用下去此命令,產生問題而不得知。
vim的主要缺點就是兩個:

  1. vim可以修改日誌文件內容,線上的日誌文件其實是不能隨便修改的,這個缺點和sed命令一致。
  2. vim會把日誌文件全部加載到內存中,如果日誌文件幾十兆還好,如果一個日誌文件好幾百兆甚至上G,一下就把內存佔滿了,甚至有導致服務宕機的危險

此時,vim和grep就都不能推薦使用了,有沒有什麼命令像“grep”命令一個沒有危險,又像vim一樣可以符合人類的閱讀習慣呢?
此時就輪到我們要說的less命令登場了

三、less命令

用法

less命令,可以直接通過less+日誌文件使用

less 日誌.log

這個時候你就可以進入到日誌文件中了
less進入日誌

進入後的使用

進入文件中,默認是進入第一頁,使用“shift+g”到最後一頁,使用“g”到第一頁。

關於搜索關鍵字,上下翻頁等功能都與vim一致,可以直接參考vim的使用。
此時,你查看日誌不僅效率很高,而且沒有任何風險。可以說是看日誌最佳命令也不爲過

四、總結

我們本篇博文介紹了grep,sed,vim等命令的缺點,然後結合各個命令的優點,查日誌我們推薦了less命令,現在總結一個各個命令的優缺點:

  • grep:沒有內存飆升風險,但是查看日誌的方式,不符合人類的閱讀習慣
  • vim:符合人類的閱讀習慣,查日誌也很方便,但是可以修改日誌文件,也有內存飆升導致服務器宕機的風險
  • less:沒有內存飆升風險,查日誌也符合人類習慣。

其實我們的生產環境,一個服務會部署多臺服務器,比如一個商品中心服務,可能會部署3臺,這個時候,一臺臺去查看日誌還是沒有特別方便,還是結合一個日誌收集工具,通過頁面去查詢最爲方便快捷,但是非生產環境,用好了查日誌命令就可以快速定位問題,解決問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章