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"}
カスタマイズに関して詳しくは以下参照
以上です。