適当な思いつきで書くブログ

UbuntuやPerlやJavaScriptやVimやZshやShellScriptやMySQLと戯れている中で適当な思いつきでやってみたことを書いています。

Log::Handlerの標準出力を色付きにしたら10倍捗った

最近、ロギングはLog::Handlerを利用している。

このモジュールは、例えばplackupしているターミナルの標準出力にもログを吐けるので開発時に重宝している。

その標準出力(&標準エラー出力)に色を付けて、さらにそれをログレベルによって色分けするともっと捗るよ、というそれだけのお話。

use Log::Hander;

my $timeformat = '%Y-%m-%d %H:%M:%S';
my $layout = '%T %L pid %P %f line %l %s : %m';

my $log = Log::Handler->new(
        screen => {
            timeformat     => $timeformat,
            message_layout => "\e[1;31m${layout}\e[m",  # 赤の太字
            log_to         => 'STDERR',
            maxlevel       => 'alert',
            minlevel       => 'alert',
        },
        screen => {
            timeformat     => $timeformat,
            message_layout => "\e[31m${layout}\e[m",    # 赤
            log_to         => 'STDERR',
            maxlevel       => 'error',
            minlevel       => 'error',
        },
        screen => {
            timeformat     => $timeformat,
            message_layout => "\e[33m${layout}\e[m",    # 黄
            log_to         => 'STDERR',
            maxlevel       => 'warning',
            minlevel       => 'warning',
        },
        screen => {
            timeformat     => $timeformat,
            message_layout => "\e[34m${layout}\e[m",    # 黄
            log_to         => 'STDOUT',
            maxlevel       => 'info',
            minlevel       => 'info',
        },
        ...
    );