10分ぐらいで学べるSymfony2 〜monolog理解編〜
自分がmonologについて社内のwikiにまとめた内容を公開してみます。
monologとは
PythonのLogbookライブラリにインスパイヤを受けて作ったライブラリだそうです。
(みたいな事がreadmeの下の方に書いてありました)
Symfony2ではこのライブラリをログ出力の標準ライブラリとして利用しております
monologを使う上での理解すべき用語
Handler
Handlerとはログの出力する機能です。
普通にファイルに出力したければ「StreamHandler」を指定し、
メールにログを出力したければ「SwiftMailerHandler」を指定します。
Formatter
Handlerが出力する際のフォーマット設定機能です。
通常の行フォーマットで出力したい場合は「LineFormatter」を使いますが、
(パラメータで出力書式は変更可能)
json形式で出力したい場合は「JsonFormatter」を利用するなどで使い分けます。
Processor
Processorとはメッセージに付加情報を追加する機能となります。
通常は「message」を指定してログ出力することになりますが、
セッショントークンなど付加情報を自動で出力したい場合、Processor機能を利用することで
拡張領域の「extra」に セッショントークンを設定してFormatterで出力します。
$ vi ./vendor/monolog/src/Monolog/Logger.php 164 $record = array( 165 'message' => (string) $message, 166 'context' => $context, 167 'level' => $level, 168 'level_name' => self::getLevelName($level), 169 'channel' => $this->name, 170 'datetime' => new \DateTime(), 171 'extra' => array(), 172 );
ログ出力レベル
monologに限った話ではないですが、ログを出力する際に出力レベルを指定します。
ハンドラに設定されているログレベル以上の値ならばログ出力するのような制御になっています。
$ vi ./vendor/monolog/src/Monolog/Logger.php 68 100 => 'DEBUG', 69 200 => 'INFO', 70 300 => 'WARNING', 71 400 => 'ERROR', 72 500 => 'CRITICAL', 73 550 => 'ALERT',