首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在laravel中创建多个日志文件?

如何在laravel中创建多个日志文件?
EN

Stack Overflow用户
提问于 2021-06-15 04:50:03
回答 2查看 1.2K关注 0票数 1

与状态本身一样,我希望为不同的进程创建多个日志文件。我用的是拉拉维尔-8。我还在配置文件夹中的logging.php帮助下创建了1日志文件。

我希望用自己单独的日志文件跟踪创建的命令。

如何为该命令创建单独的日志文件?

我做这件事的时候每天只有一个日志。"config/logging.php“

代码语言:javascript
复制
'channels' => [
    'stack' => [
        'driver' => 'stack',
        'channels' => ['daily'],
        'ignore_exceptions' => false,
    ]...,
 ]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-15 06:10:17

您应该使用config/logging.php为每个命令创建自定义通道。

代码语言:javascript
复制
    'CHANNEL_NAME' => [
        'driver' => 'single',
        'path' => storage_path('logs/LOG_FILE_NAME.log'),
        'level' => 'DESIRED_LEVEL', 
    ],

并根据需要更改CHANNEL_NAMELOG_FILE_NAMEDESIRED_LEVEL值。

注意: 'level' => 'DESIRED_LEVEL'是可选的。它可以是水平(laravel v8.x)的单个级别或数组。

然后,当您想在命令类中记录任何内容时,请记录如下代码

使用:

代码语言:javascript
复制
    Log::channel('CHANNEL_NAME')
        ->info('Something happened!');
票数 7
EN

Stack Overflow用户

发布于 2021-06-15 05:57:21

下面的代码将生成自定义日志文件。

代码语言:javascript
复制
try{
        //Your code here
}catch(\Exception $e){
        $cusLog = new Logger('stack');
                        $err_file_name = $task_id."_".time();
                        $syncHistory['file_name'] = $err_file_name;
                        $cusLog->pushHandler(new StreamHandler(storage_path('logs/'.$err_file_name.'.log')), Logger::INFO);
                        $cusLog->info('error', ['Exception'=>$e->getTraceAsString(),'message'=>$e->getMessage()]);
    }

希望这会有用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67980185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档