ログ調査について調べてみた!!
結論から言えば...?
ログを見るときはless -Fコマンドを使え!!
経緯
私は仕事で決済系のAPIを2つ保守しています。 そうなると、不具合の問い合わせがバンバンくるわけですが(一応言い訳しておくと弊社のシステムが原因の不具合は全体の1割に満たないです)、そのときのログ調査をもっと上手くできないかなーと思ったので、ログ閲覧のやり方を調べてみました。
閲覧方法
catコマンド
ファイル閲覧のコマンド。">"(リダイレクト)を利用することで別ファイルへの出力もできるが、ここでは割愛する。
$ cat file_name
-nオプション
行番号をつけて出力してくれるので便利。
$ cat -n file_name
複数ファイルの出力もイケる
複数のファイルを一度に出力することもできる。
短いファイルを一度に閲覧したいときに便利。
$ cat file_nameA file_name_B
catコマンドは指定したファイルを一度全て読み込んでから出力するため、莫大な行数のログを調査するときには不適切だそうな。
vi,vimコマンド
閲覧、編集ができるエディタを呼び出すコマンド。
操作方法が取っ付きにくいけど、慣れると最強なエディタらしいです。
$ vim file_name
編集ができてしまうと、ログに無駄な情報を追加してしまう可能性があるので不適切ですね。
じゃあ結局何を使えばいいの?
vimみたいな高機能な検索を使いたいですが、ログを壊してしまっては元も子もありません。何かいい方法はないでしょうか。。。
lessコマンド
vimの便利な機能が使えるけど、編集はできない。要は閲覧専用のvim的なコマンド。
$ less file_name
-Fオプション
ログを監視しながらデバッグするときは、リアルタイムにログ出力を待ち受けたいですよね。そんなときに活躍するのがこのオプション。
$ less -F file_name
lessの操作
前述したとおり、lessには操作に結構クセがあって慣れるまでは使いにくい。私自身、lessコマンドは知っていたけど使い方調べるのが面倒で使っていなかった。
ページ操作
- k(↑キー) … 1行上に移動する
- j(↓キー) … 1行下に移動する
- XXk … XX行上に移動する
- XXj … XX行上に移動する
- f … 1ページ上に移動する
- b … 1ページ下に移動する
- g … 先頭に移動する
- G … 末尾に移動する
検索
- /key_word … キーワードを検索してハイライトする
- (検索後に)n … 次の検索結果に移動する
- (検索後に)N … 前の検索結果に移動する