ダウンロード サンプルファイル (50.6 KB)
大量に表示されるログから必要な情報を見つけやすくしたい
開発中には、さまざまな情報をログに出力することで、正しく動作しているかどうかを確認しますが、デバッグ情報などを大量に出力している環境では、肝心のエラー情報などが埋もれてしまい、問題の発見が遅れてしまうことになりかねません。
ログを色分けして表示する
このような場合には、ログレベルによってメッセージ色を変更することで、特定のログ情報を見つけやすくできるようになります。
Catalystのログモジュールを拡張し、色指定できるようなプラグインとして、Catalyst::Plugin::Log::Colorfulを紹介します。
まず最初に、Catalyst::Plugin::Log::Colorfulをインストールするには、rootユーザで次のコマンドを実行します。
# perl -MCPAN -e 'install Catalyst::Plugin::Log::Colorful'
Catalyst::Plugin::Log::Colorfulの例
このプラグインを使用するには、アプリケーションモジュールファイルで次のように指定します。
# 使用するプラグインを指定 use Catalyst qw/ -Debug ConfigLoader Static::Simple Log::Colorful /;
後は通常のログ出力と同様に、Catalyst::Logに定義されているdebugなどのメソッドを、ログレベルに応じて呼び出します。明示的に文字色と背景色を指定することもできます。
sub log :Local {
my ( $self, $c ) = @_;
$c->log->debug('debug');
$c->log->info('info');
$c->log->warn('warn');
$c->log->error('error');
$c->log->fatal('fatal');
# 明示的に文字色、背景色を指定できる
$c->log->debug('debug', 'red', 'white');
$c->log->warn( 'warn', 'blue' );
$c->response->body('Log!');
}
このプラグインは、ANSIのエスケープコードによる色コード指定を利用しているため、対応しているターミナルソフトウェア(TeratermやPuTTYなど)でなければ正しく色が表示されません。
デフォルト設定の場合だと、Teratermでは次のように表示されます。

デフォルトの色設定を変更するには、設定ファイルで指定する方法の他に、アプリケーションモジュールファイルのconfigで、次のように指定することもできます。
__PACKAGE__->config(
name => 'PluginSample1',
'Plugin::Log::Colorful' => {
color_table => {
debug => {
color => 'white',
bg_color => 'blue',
},
info => {
color => 'yellow',
bg_color => 'black',
},
warn => {
color => 'blue',
bg_color => 'green',
},
error => {
color => 'red',
bg_color => 'yellow',
},
fatal => {
color => 'red',
bg_color => 'green',
},
},
},
);
この設定の実行例は次のようになります。

この記事は参考になりましたか?
- Webアプリケーションフレームワーク「Catalyst」入門連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 花田 善仁(ハナダ ヨシヒト)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
