Saba note

醜悪コード Ugly hacks ITものづくり

Symfony2 monologの使い方

ミニマムでインストールしていたらcomposerからインストールしないといけないですが、そこは割愛。
monologはいわゆるログを取るモジュールなんですが、そもそもメモリ不足でFatal errorでコケた場合とかにログそのものが残らないという悲しいことになってしまったりという自体をそこそこ解消してくれる優れものです。シェル立ち上げて適当にログ取っちゃおうという方々もこっち使った方がいいです。

ログを取る

monologを使いたいコントローラのいちばん最初で、monologをuseしてあげます。

// monolog
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

今回ここではHandlerは使わないですがいずれ使うので一緒にuseしちゃった方がよいでしょう。
で、ログの取りたいところでgetします。(newとかしなくてもいい)

$logger = $this->get('logger');

ログのレベルはいろいろあると思うのですが、
debug, info, notice, warn, warning, err, error, critical, alert, emerg, emergencyというようなものがたくさんあります。app/vendor/monolog/monolog/src/Monolog/Logger.phpの関数にあるやつがそうなので見ておくとよいです。
実際のとロギングの方法は、

$logger->info('The information for something..',array('foo','bar'));

第三引数に何か設定できるっぽいんですが、そこまでソース見てないので誰かおしえてください。実際には、

// /Users/osamu/GoogleDrive/localhost/symfony2/app/var/logs/prod.log
[2017-03-20 22:48:01] app.INFO: The information for something.. ["foo","bar"] []

というかたちでロギングされます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です