開發中經常使用日誌搜索技巧

在咱們的實際開發中,通常應用都部署在Linux上,爲了後期方便排查bug或者記錄代碼執行的流程。對於開發者而言,遇到問題常常須要去看log文件(或者使用Kibana這樣的工具),這裏介紹幾個開發經常使用而又重要的日誌查找技巧。正則表達式

Linux查看日誌的幾個常見命令

  • grep
  • head
  • cat
  • tail
  • less
  • ack
  • sed
  • vi

grep

grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。express

  • 常見使用方法之: grep 2017010500345878 --color info.log
這行命令在info.log中搜索含有"2017010500345878"關鍵詞的段落而且使用其餘顏色標記關鍵詞。
複製代碼

優勢:根據關鍵詞快速方便定位而且打印出來段落的上下文。bash

head

head命令是用來查看具體文件的前面幾行的內容,該命令默認是前10行內容;less

  • 常見使用方法之: head -50 info.log
查看info.log文件的前50行。
複製代碼

優勢:快速定位到文件的前多少行。編輯器

tail

tail命令是用來查看具體文件後面幾行的內容,默認狀況下,是查看該文件尾10行的內容;還可使用 tail 來觀察日誌文件被更新的過程。使用 -f 選項,tail 會自動實時更新文件內容。工具

  • 常見使用方法之: tail -f info.log

cat

cat命令是Linux下的一個文本輸出命令,一般是用於觀看某個文件的內容的.經常使用有三大功能:1.一次顯示整個文件;2.從鍵盤建立一個文件。3.將幾個文件合併爲一個文件。這裏咱們只舉例顯示一個文件.spa

  • 常見使用方法之: cat -n info.log

less

less(less) 命令能夠對文件或其它輸出進行分頁顯示命令行

  • 常見使用方法之: cat -n info.log

ack

ack是一個基於Perl的相似於grep的命令行工具,可是搜索速度更快,能力比grep更強。日誌

  • 常見使用方法之: ack -w order
在當前目錄遞歸搜索單詞」eat」,不匹配相似於」orderService」或」paymentOrder」的字符串.
複製代碼
  • 常見使用方法之: ack -w order

sed

sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩衝區中,稱爲「模式空間」(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並無 改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操做;編寫轉換程序等。code

  • 常見使用方法之: sed -n '800,900' info.log
查看info.log文件800到900行之間的內容
複製代碼

vi

使用找一個字符串,在vi命令模式下鍵入「/」,後面跟要查找的字符串,再按回車。vi將光標定位在該串下一次出現的地方上。鍵入n跳到該串的下一個出現處,鍵入N跳到該串的上一個出現處。

常見組合使用

使用[grep -n 異常 --color info.log ]查詢到異常在文件中發生的行數,而後再看先後幾十行日誌的內容[sed -n '800,900' info.log].

總結

這些命令的功能都比較豐富,這裏只是列出很是簡單的一些用法,在通常的開發中都是頻繁使用獲得.具體的用法須要開本身總結使用本身喜歡使用的命令.(我這裏的總結也會持續更新)

相關文章
相關標籤/搜索