cron実行時などは手動でログを出力して保存しておくと後からのデバッグが楽になります
config/logging.php の 'channels に追加します。
'channels' => [
// 追加したチャンネル [apidebug]
'apidebug' => [
'driver' => 'daily',
'path' => storage_path('logs/apidebug.log'),
'level' => 'info',
'days' => 30,
'permission' => 0666,
],
// ロガー
$logger = \Log::channel('apidebug')->getLogger();
$logger->info( "TEST LOG", ['file' => basename(__FILE__), 'line' => __LINE__] );
storage/logs/apidebug-2019-xx-xx.log 次のようなログが 出力されます
[2019-08-26 11:34:06] local.INFO: TEST LOG {"file":"ApiDebugController.php","line":87}
// DEBUG
$monolog->debug($message, $context);
// INFO
$monolog->info($message, $context);
// NOTICE
$monolog->notice($message, $context);
// WARNING
$monolog->warning($message, $context);
// ERROR
$monolog->error($message, $context);
// CRITICAL
$monolog->critical($message, $context);
// ALERT
$monolog->alert($message, $context);
// EMERGENCY
$monolog->emergency($message, $context);
use Log;
$monolog = Log::getLogger();
$ip = new \Monolog\Processor\IntrospectionProcessor(
\Monolog\Logger::DEBUG,
[
'Monolog\\',
'Illuminate\\',
]
);
$monolog->pushProcessor($ip);
このようなログになります
[2018-11-09 01:52:35] local.WARNING: テーブルからデータを取得できません {"file":"/home/app/Http/Controllers/TestController.php","line":231,"class":"App\\Http\\Controllers\\TestController","function":"postarticle"}
とても便利なので是非利用しましょう。
config/app.php を以下のように変更します
'timezone' => 'Asia/Tokyo',