首页 > 解决方案 > 每次运行作业时单独的日志文件 laravel

问题描述

我有一个 Laravel 8 应用程序,我在其中针对特定帐户运行我的作业。对于每个帐户,我需要一个单独的日志文件,格式如“logFileName_122323123_2021-01-01”(logFileName__) 等。

类似的问题如何在 Laravel 8.0 中自定义登录文件名? 但这并不能帮助我在每次运行作业时创建一个新文件。

我在我的作业构造函数中尝试过,但由于我静态调用 Log,它不会保留它的值。

Config::set(['logging.channels.processPbsNormalCampaignJob.path' => storage_path('logs/processPbsNormalCampaignJob_'.$this->accountId.'_' . date('Y-m-d') . '.log')]);

最好的方法是什么?

标签: laravellogginglaravel-8jobs

解决方案


从 Laravel v8.66.0开始,您可以动态创建日志通道。您也可以将PR作为Docs进行检查

所以基于 Docs 你可以做

Illuminate\Support\Facades\Log::build([
        'driver' => 'daily',
        'path' => storage_path('logs/processPbsNormalCampaignJob_' . $this->accountId . '_' . date('Y-m-d') . '.log'),
    ])->info('Your Log data here !!');

推荐阅读