$ composer require monolog/monolog
bootstrap.phpに下記を追加
include 'logger.php';
config/logger.phpに下記を追加
<?php use Cake\Log\Log; use Monolog\Logger; use Monolog\Handler\RotatingFileHandler; use Monolog\Formatter\LineFormatter; Log::drop('error'); Log::config('error', function () { $log = new Logger('app'); $formatter = new LineFormatter(null, null, true); $handler = new RotatingFileHandler(LOGS.'error.log', 10); $handler->setFormatter($formatter); $log->pushHandler($handler); return $log; });
こんな感じで使える。Slackとかに飛ばしたりしたいというときに役立ちそう。
cakeの標準機能でログ出力の調整をする場合は、app.phpのLog設定箇所を変更する。
'Log' => [ 'debug' => [ 'className' => 'Cake\Log\Engine\FileLog', 'path' => LOGS, 'file' => 'debug-'.date('Y-m-d'), 'levels' => ['notice', 'info', 'debug'], 'url' => env('LOG_DEBUG_URL', null), 'rotate' => 10, 'size' => '1MB' ], 'error' => [ 'className' => 'Cake\Log\Engine\FileLog', 'path' => LOGS, 'file' => 'error-'.date('Y-m-d'), 'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'], 'url' => env('LOG_ERROR_URL', null), 'rotate' => 20, 'size' => '1MB' ], ],