国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

關(guān)于webman日志的一些問題

dgkerry

問題描述

我使用webman并開啟協(xié)程(Workerman\Events\Swoole::class),我現(xiàn)在模擬并發(fā)請求100次test,按正常來說,我的log2日志文件應(yīng)該有100次【請求進(jìn)來】的日志,但我發(fā)現(xiàn)記錄一部分后會提示log2.WARNING: A possible infinite logging loop was detected and aborted. It appears some of your handler code is triggering logging, see the previous log record for a hint as to what may be the cause. [] [],請問為何呢

<?php

namespace app\controller;

use support\Request;
use support\Log;
class IndexController
{
    public function test(Request $request){
        $log = Log::channel('log2');
        sleep(3);
        $log->info('請求進(jìn)來');
        return json(array('ok2'));
    }

}
#config下的log配置

return [
    // log2通道
    'log2' => [
        // 處理默認(rèn)通道的handler,可以設(shè)置多個
        'handlers' => [
            [   
                // handler類的名字
                'class' => Monolog\Handler\RotatingFileHandler::class,
                // handler類的構(gòu)造函數(shù)參數(shù)
                'constructor' => [
                    runtime_path() . '/logs/log2.log',
                    Monolog\Logger::DEBUG,
                ],
                // 格式相關(guān)
                'formatter' => [
                    // 格式化處理類的名字
                    'class' => Monolog\Formatter\LineFormatter::class,
                    // 格式化處理類的構(gòu)造函數(shù)參數(shù)
                    'constructor' => [ null, 'Y-m-d H:i:s', true],
                ],
            ]
        ],
    ],
];
343 2 2
2個回答

smile1

可能日志處理器在并發(fā)寫入時出現(xiàn)了沖突,導(dǎo)致日志系統(tǒng)檢測到循環(huán)(比如一個日志寫入觸發(fā)了另一個日志記錄,從而陷入死循環(huán))。

  • dgkerry 2025-03-04

    我看了下support\Log類,以上代碼,我在index控制器的test方法下使用了Log::channel('log2');,而Log的channel方法會判斷isset(static::$instance[$name])結(jié)果,難道我在并發(fā)100次時,這些請求都是用同一個類?

胡桃

Monolog 沒有適配 Swoole,改 Monolog 源碼或者重寫 Logger 類,把深度檢測關(guān)掉。

  • dgkerry 2025-03-04

    多謝!通過useLoggingLoopDetection方法來關(guān)掉深度檢測后,以上代碼并發(fā)下的確不存在這個提示了

??