QA@IT

Padrinoのログをlessで表示するには?

3270 PV

Padrinoのアプリケーションログはエスケープシーケンスで色付けされています。ログレベルによって色分けされるのは便利ですが、lessで表示することができないのがちょっと不便です。なんとかならないでしょうか?

回答

Padrinoはboot.rbに簡単な設定を書くだけでアプリケーションログを出力することができます。

ログの設定

config/boot.rb

Padrino::Logger::Config[:development] = { :log_level => :debug, :stream => :to_file }

**/*.rb

logger.debug "log message"

log/development.log

[36m  DEBUG[0m -[33m12/May/2012 13:42:23[0mlog message

lessで表示するには

質問にあった通り、エスケープシーケンスによるカラーリングがされているため、lessでカラーリングされた表示をするためには -R オプションが必要です。

$ less --help
# snip
 -r  -R  ....  --raw-control-chars  --RAW-CONTROL-CHARS
                  Output "raw" control characters.
# snip

$ less -R log/development.log
DEBUG -12/May/2012 13:42:23hogepiyo 

なぜtailではなくless?

流れてくるログを見るために、lessは優れたツールです。通常は

tail -f log/development.log

などとしますが、lessでは

less -R log/development.log

として開いたあと、Shift + fを押すことで同様の状態になります。さらにCtrl + Cで止めるとviと同様にページアップ / ダウンや検索が行え、Shift + fで戻ることができます。教えると便利さにびっくりする人が定期的にいるので、周りの人に教えてあげましょう。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。