首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MonoLogger 9级深度中止正常化

MonoLogger 9级深度中止正常化
EN

Stack Overflow用户
提问于 2020-04-29 16:35:55
回答 3查看 3.4K关注 0票数 0

我试图记录一个请求,我们通过口香糖发送,这是深嵌套(高达10-11的深度,准确地说)。

用Monolog记录请求的结果是:

超过9层深度,中止正常化

在深嵌套属性上。

代码非常简单

代码语言:javascript
复制
// $requestData being the data I am sending via guzzle.
Log::info("Ekart Booking API:", $requestData);

有什么方法可以增加单曲的归一化深度吗?

EN

回答 3

Stack Overflow用户

发布于 2020-04-30 06:45:18

您可以json_encode它:

代码语言:javascript
复制
Log::info("Ekart Booking API:" . json_encode($requestData));
票数 3
EN

Stack Overflow用户

发布于 2022-01-13 15:08:12

你可以玩这个,它会改变它找到的每个格式化程序上的NormalizerFormatter::$maxNormalizeDepth (这可能不是你想要的)

代码语言:javascript
复制
if ($logger instanceof \Monolog\Logger) {
    foreach ($logger->getHandlers() as $handler) {
        if ($handler instanceof \Monolog\Handler\FormattableHandlerInterface) {
            $formatter = $handler->getFormatter();
            if ($formatter instanceof \Monolog\Formatter\NormalizerFormatter) {
                $formatter->setMaxNormalizeDepth(50);
            }
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2022-05-20 14:57:03

既然您标记了Laravel,下面是如何通过配置日志格式化程序来解决Laravel中的这个问题。

https://laravel.com/docs/9.x/logging#customizing-monolog-for-channels

将配置更改为如下所示:

代码语言:javascript
复制
'single' => [
    'driver' => 'single',
    'tap' => [App\Logging\CustomizeFormatter::class],
    'path' => storage_path('logs/laravel.log'),
    'level' => 'debug',
],

然后根据Axi的答案创建一个具有以下内容的CustomzeFormatter类。

代码语言:javascript
复制
<?php
 
namespace App\Logging;
 
use Monolog\Formatter\LineFormatter;
 
class CustomizeFormatter
{
    public function __invoke($logger)
    {
        foreach ($logger->getHandlers() as $handler) {
            if ($handler instanceof \Monolog\Handler\FormattableHandlerInterface) {
                $formatter = $handler->getFormatter();
                if ($formatter instanceof \Monolog\Formatter\NormalizerFormatter) {
                    $formatter->setMaxNormalizeDepth(50);
                }
            }
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61506856

复制
相关文章

相似问题

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