[Laravel]Laravel5.1のログ出力に関して調査したまとめ

  • 39
    いいね
  • 0
    コメント

Laravel

  • Laravel5.1 について調査した結果をまとめています

設定

  • config/app.php
<?php

return [
...
    /*
    |--------------------------------------------------------------------------
    | Logging Configuration
    |--------------------------------------------------------------------------
    |
    | Here you may configure the log settings for your application. Out of
    | the box, Laravel uses the Monolog PHP logging library. This gives
    | you a variety of powerful log handlers / formatters to utilize.
    |
    | Available Settings: "single", "daily", "syslog", "errorlog"
    |
    */
    'log' => 'daily',
    // dailyログの場合の保存期間を指定
    'log_max_files' => '10',
...
]

logの設定値

保存

設定値 内容 備考
single storage/log/laravel.logに出力する 単一ファイルでログローテーションは無いため別途考慮する必要がある
daily storage/log/laravel-YYYY-MM-DD.logに出力する 1ファイルに1日分のログが出力される
デフォルトでは5日分が保存される
log_max_filesキーを追加設定すると保存期間を変更できる
syslog Syslogに出力する Syslogに関してはこちら
errorlog ログをerror_log()で出力する 出力先はphp.iniの設定による

追加設定

設定値 内容 備考
log_max_files daily設定時のログファイル保存期間を変更できる 設定が無い場合は5日分の保存となる

ログの出力

  • ログの出力にはLogファサードを使用する
  • Logファサードにはログレベルに合わせてメソッドが用意されている

メソッド一覧

メソッド ログレベル
Log::debug() debug
Log::info() info
Log::notice() notice
Log::warning() warning
Log::error() error
Log::critical() critical
Log::alert() alert

各エラーレベルの出力例

[05-Feb-2016 19:26:40 Asia/Tokyo] [2016-02-05 19:26:40] local.DEBUG: log test
[05-Feb-2016 19:26:40 Asia/Tokyo] [2016-02-05 19:26:40] local.INFO: log test
[05-Feb-2016 19:26:40 Asia/Tokyo] [2016-02-05 19:26:40] local.NOTICE: log test
[05-Feb-2016 19:26:40 Asia/Tokyo] [2016-02-05 19:26:40] local.WARNING: log test
[05-Feb-2016 19:26:40 Asia/Tokyo] [2016-02-05 19:26:40] local.ERROR: log test
[05-Feb-2016 19:26:40 Asia/Tokyo] [2016-02-05 19:26:40] local.CRITICAL: log test
[05-Feb-2016 19:26:40 Asia/Tokyo] [2016-02-05 19:26:40] local.ALERT: log test

第2引数に連想配列を指定

  • 第2引数に連想配列を指定しログ出力することが可能
\Log::debug('log test', ['apple' => 'red', 'number' => 123]);

第2引数指定しての出力例

[05-Feb-2016 19:30:26 Asia/Tokyo] [2016-02-05 19:30:26] local.DEBUG: log test {"apple":"red","number":123}

ログのカスタマイズ

  • ログ出力には「monolog」を使用している
  • 「monolog」を直接操作して処理を変更することが可能
$monolog = \Log::getMonolog();
$monolog->pushProcessor(function ($record) {
    $record['extra']['logDate'] = date('Y年m月d日 H:i:s');
    return $record;
});
$monolog->pushProcessor(new \Monolog\Processor\MemoryUsageProcessor());
$monolog->info('Usage Memory');

カスタマイズの出力例

[05-Feb-2016 19:45:47 Asia/Tokyo] [2016-02-05 19:45:47] local.INFO: Usage Memory  {"memory_usage":"3.25 MB","logDate":"2016年02月05日 19:45:47"}

カスタマイズに関して詳しくは以下参照

以上です。