itail 20161022.1431(in MELPA)
An interactive tail mode

概要

Webサーバなどのログを解析するのは
tail -f シェルコマンドを使うのが定番ですね。

tail -fとはファイルを開きっぱなしにして、
追記されたのと同時に追記分を出力するコマンドです。

itail.el は、Emacs内でtail -fを実行します。

それだけではなく、grepで絞り込んだり、
特定の文字列をハイライトする機能があります。

まさにログ解析に便利なツールです。

itail.elを実行するにはtailとgrepシェルコマンドが必要で、
/bin/shを使っているのでWindowsではCygwinが必要です。

まず、M-x itailでtail -fを実行させます。

そして、C-c gでgrepする正規表現(フィルタ)を指定します。

C-c hでハイライトを有効にします。

フィルタを全部解除し、tailを再起動するにはC-c C-kです。

20150304063832.png
Fig1: C-c g eeでeeが含まれるログだけに絞り込み

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてitailを使う方は
以下のコマンドを実行します。

M-x package-install itail

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name itail

設定 150304063020.itail.el(以下のコードと同一)

(autoload 'itail "itail" nil t)
;;; modelineに実行中のコマンドを表示する
(setq itail-fancy-mode-line t)
;;; ハイライトする正規表現とフェイス
;;; この例はWebサーバですが、各自設定してください
(setq itail-highlight-list
      '(;; errorとwarningを赤で表示
        ("[eE]rror\\|[wW]arning" . hi-red-b)
        ;; HTTPのmethodを緑で表示
        ("GET\\|POST\\|DELETE\\|PUT" . hi-green-b)
        ;; IPアドレスを文字列の色で表示
        ("[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}\\.[0-9]\\{1,3\\}" . font-lock-string-face)))

実行方法

$ wget http://rubikitch.com/f/150304063020.itail.el
$ emacs -Q -f package-initialize -l 150304063020.itail.el


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。