在Stripe中设置多个日志目录

时间:2020-11-09 13:53:53

标签: laravel

我在Laravel中设置了这样的日志记录:

'default' => env('LOG_CHANNEL', 'stack'),

'stack' => [
        'driver' => 'stack',
        'channels' => ['daily'],
        'ignore_exceptions' => false,
    ],

    'single' => [
        'driver' => 'single',
        'path' => storage_path('logs/laravel.log'),
        'level' => 'debug',
    ],

    'daily' => [
        'driver' => 'daily',
        'path' => storage_path('logs/laravel.log'),
        'level' => 'debug',
        'days' => 14,
        'permission' => 0666,
    ],

这将为storage/logs中的每一天创建日志。

现在,我要做的是将计划任务中的日志消息仅发送到单独的日志目录中。例如,以storage/logs/cron。但是我想将其他消息保留在当前设置中。

我如何做到这一点?我尝试在config中创建一个新频道,但它仍将消息记录在同一文件中。

1 个答案:

答案 0 :(得分:0)

您可以在config/logging.php中创建一个新频道。即:

'cronjob' => [
    'driver' => 'single',
    'path' => storage_path('logs/cronjob.log'),
    'level' => 'debug',
],

然后您可以在您的命令(或任何地方)中使用它,并添加channel方法:

Log::channel('cronjob')->info('Command started. ');

如果要记录异常,请使用try/catch

try {
    // ...
} catch (\Exception $exception) {
    Log::channel('cronjob')->error($exception);
}
相关问题