basyura's blog

あしたになったらほんきだす。

tail のログに色を付ける

日々のサーバメンテでは tail -f で apache のアクセスログを監視したりするわけですが、「監視対象の文字列」を目視確認するにはやはり色分けした方が良いわけで、少し調べてみました。

色つきの tail -f とか grep とか

perl 版を ruby で書いてみる

#!/opt/local/bin/ruby
color = "1;36"; # LightCyan
while true
  begin
    line = STDIN.readline
    key  = ARGV[0]
    print line.gsub(key,"\e[#{color}m#{key}\e[0m/")
  rescue EOFError
    break
  end
end

動かす時は

tail -f log.txt | ruby colorse.rb log

いろいろ勘違いありそう。
sed がうまくいかないんだけど良く分からない・・・・。

s/log/\e[1:36mlog\e[0m/

としてもだめか・・・。o33 を使ってるサンプルもあって cygwin ではうまくいったんだけど Solaris も mac もダメだった。エスケープシーケンスって環境ごとに色々違うのかな。