NetBSDでは標準のtailは '-f' オプションを付けると1つのファイルしか受け取りません。
Apacheではリクエストのログ (access_log) とエラーのログ (error_log) の2つのファイルを設定していますが、
- まとめて1つのスクリーンで見たい
- さらに特定のURLへのアクセスのみ見たい
- あるいはgrep的にフィルタしたログのみを見たい
などという場合が多々あります。
そこでちょっとpkgsrcを覗いてみました。
locate tail | grep pkgsrcなどとするといくつかあるようです。
- misc/colortail: 出力をカラー化してくれるtail。別途色設定ファイルも必要。複数のファイルには対応していないっぽい。C++で書かれている。
- misc/mtail: 出力をカラー化してくれるtail。Python2で書かれている。http://matt.immute.net/src/mtail/
- misc/multitail: 複数のファイルをスクリーンを分割して出力してくれるtail。
- misc/xtail: 複数のファイルあるいはディレクトリ以下の全ファイルを同時にtailする。
- sysutils/wtail: multitailと同様に複数のファイルをスクリーンを分割して出力してくれる。
- colortail: 複数ファイルに対応しているけれど、そのファイルを出力する際にファイル名を別途出力するのでけっこう見づらい。カラー化自体は好みかも。
- mtail: colortail同様、ファイル名は別途出力されるので、どのファイルの出力家を見るのが辛い。
ちなみにファイル名はこんな感じで表示される。
==> /var/log/httpd/access_log <== - multitail: RLoginで表示しているときにマウスでスクリーンをクリックすると、なぜかバッファが動いてしまう場合があるけど、オプションも豊富で、正規表現でのパターン指定('-e'オプション)ができるし、排除パターンの指定('-ev'オプション)もできるので便利。
- xtail: pkgsrcで利用しているソースのREADMEには、"1989年7月にcomp.sources.miscに投稿された"とあって、めちゃくちゃ古い。平成元年。"XコンソーシアムとかSGIとかが "xtail" という名前を盗もうとした、騙されるな、オリジナルはこっちだ"とも書いてある。
'-f' オプションはないので、xtail起動以降にファイルに追加された部分を随時表示していくけど、パターン指定ができないのでそういう用途には不向き。
あと、終了時はESCや'q'ではなく、CTR+CやCTRL+DですらないCTRL+'\'という変則的なものなので、知らずに起動すると別のコンソールからkillしなくてはならない。 - wtail: オプションはないらしく、 xtail /var/log/httpd/*log したらログを全部表示してから '-f' オプション相当の動きになって、大変なことに。