Laravelで標準出力にエラーログを出力する

HerokuでWebサイトを作る場合、ログの出力はPapertrailを入れることが多い、というか必ず利用しています。
Papertrailでは標準出力に出力したログは漏れなく拾ってくれるので、Laravelも標準出力にエラーログを出力するようにする方法を毎回ググルので備忘録。

設定

以下の記述を、bootstrap/app.php に追加します。

1
2
3
$app->configureMonologUsing(function ($monolog) {
    $monolog->pushHandler(new \Monolog\Handler\StreamHandler('php://stderr'));
});

出力

以下のようにすると出力可能です。

1
Log::error('TEST LOG');

結果

すると、以下のように出力されます。

1
[2017-06-16 04:02:16] dev.ERROR: TEST LOG [] [] 

dev.ERRORdevの部分は、環境変数のAPP_ENVで設定している文字列が出ます。
なので、dev.ERRORとかでひっかけてPapertrailでアラートを設定してやれば自分で出力したエラーログで通知とかが出せたりします。

参考

以下、参考にしました。ありがとうございます。

   このエントリーをはてなブックマークに追加