Log::Minimal v0.02をリリースしました。xaicronさんのpatchにより出力するログのレベルを変更することができるようになりました。
WARN以上のログだけを出したい場合、$Log::Minimal::LOG_LEVEL を変更します。
use Log::Minimal;
local $Log::Minimal::LOG_LEVEL = "WARN";
infof("info"); #出力されない
warnf("warn"); #出力される
デフォルトのレベルはDEBUGです。なお、デバックメッセージを出すには環境変数も設定されている必要があります。
ところで、Log::Minimalでは4つのログレベル、DEBUG、INFO、WARN、CRITICALをサポートしていますが、他のLogモジュールではより詳細なレベルを用意しているものがあります。そのため、アプリケーションの開発中にどのレベルでログを出力すればいいのか悩んでしまうことがあるかもしれません。その結果ログを出す事に躊躇してしまうことがあったりなかったり。
そのような際には、ログをアプリケーション開発者と運用エンジニアのコミュニケーション手段として考えて、見る人にやって欲しい事をベースに考えてみるのはいかがでしょうか。Log::Minimalでサポートしている4つのレベルを例にすると以下のようになります。
LEVEL | 見る人 | 内容 |
---|---|---|
DEBUG | 開発者 | 開発中のデバック出力。プロダクション環境では出力されない |
INFO | 開発者 | 開発者自身が運用中に参照する情報。アプリケーションの問題を発見するための手がかりとして |
WARN | 運用者/開発者 | 運用中に起きたシステムに関する問題(入力チェックに引っかかったとかではない)。ただし直ぐにサービスが継続できない状態ではないもの。障害を検知するための間接的な情報 |
CRITICAL | 運用者/開発者 | サービスの継続ができないシステムに関する障害。障害原因を探すための直接的な情報 |
運用するのは自分だよという開発者の方は、夜間の障害時に欲しい情報だったり、夜間のパフォーマンスに関する問題を翌営業日に調査するのに十分な情報を出すイメージを持つと良いかもしれません。
ログを出す基準が決まると、自信をもってログが出せるようになり、障害時の対応も速くなり、アプリケーションの改善が進み、夜間対応が減り、みんなでリア充になれます(たぶん)