【问题标题】:Separate log files for each time a job is run laravel每次运行作业时单独的日志文件 laravel
【发布时间】:2021-11-01 08:19:20
【问题描述】:

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

类似问题how to customize file name of log in Laravel 8.0? 但这并不能帮助我在每次运行作业时创建一个新文件。

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

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

最好的方法是什么?

【问题讨论】:

    标签: laravel logging laravel-8 jobs


    【解决方案1】:

    从 Laravel v8.66.0 开始,您可以动态创建日志通道。您也可以将PRDocs 一起检查

    所以基于 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 !!');
    

    【讨论】:

    • 感谢您的回复。这似乎是解决问题的可行方案,但我使用的是 Laravel v8.58.0。所以我假设这行不通?
    • 您可以通过运行compoer update 使用最新版本,因为它只是一个补丁版本,不会破坏任何东西。
    • 有没有办法覆盖构建?我有两个作业从一个命令运行,并且 Log::build 文件不会覆盖以前的流。
    • 你能运行 composer update 并检查问题是否仍然存在
    【解决方案2】:

    ManojKiran Appathurai 发布的答案是正确的,但是当我从同一个命令运行两个作业时遇到了问题。出乎意料的结果是,一旦我构建了日志,我就无法重新构建它。

    我现在做的是:

    创建这个辅助函数

    public function initializeLogger($fileName, $channel)
        {
            $path = 'logs/'.$fileName.'.log';
            config(['logging.channels.googlelog.path' => storage_path($path)]);
    
            return Log::channel($channel);
        }
    
    

    然后您可以创建一个特定于工作的新频道名称,例如

    'importAccountEntitiesJob' => [
                'driver' => 'daily',
                'path' => storage_path('logs/importAccountEntitiesJob.log'),
                'level' => 'debug',
                'days' => 0,
            ],
    

    这一切要做的就是动态地更改频道的名称。现在,由于每个作业都有不同的通道,我们可以轻松地为每个作业创建单独的日志,即使它们是从单个命令运行的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-24
      • 2017-01-09
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      相关资源
      最近更新 更多