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

自定義的異常和validate的異常,能不能不記錄到webman-2023.log中

kylin87

問(wèn)題描述

代碼里我這邊如果數(shù)據(jù)校驗(yàn)不通過(guò),會(huì)直接拋出exception\ValidateException的異常,使用上沒(méi)有什么問(wèn)題,但是wenman記錄了很多這種異常
還有一些自己主動(dòng)拋出的自定義的異常,使用上也沒(méi)有問(wèn)題,但是webman也記錄了,像上面說(shuō)的這兩種異常,我是不希望記錄到webman.log中的,反而會(huì)影響到排查真正的問(wèn)題

就是怎么讓webman不去記錄那些特定的異常?

為此你搜索到了哪些方案及不適用的原因

我在app下的ExceptionHandler.php中對(duì)異常進(jìn)行的攔截處理,并返回的json,這個(gè)處理后,接口正常返回了錯(cuò)誤的json信息,但是webman.log中還會(huì)再記錄一次

1314 2 1
2個(gè)回答

軟飯工程師

截圖
截圖
ApiException繼承的是BadRequestHttpException,我在使用 throw new ApiException() 主動(dòng)拋出錯(cuò)誤時(shí),日志并沒(méi)有記錄錯(cuò)誤信息

  • 暫無(wú)評(píng)論
kylin87

解決了
查看了下app\Exception的基類,有一個(gè)report方法,會(huì)記錄異常的日志,把這個(gè)方法,復(fù)制到app\Exception進(jìn)行重寫,把不需要記錄日志的類列出來(lái),提前return就行了,下面是示例代碼,可以參考一下

public function report(Throwable $exception)
    {
        //下面這幾個(gè)異常,是我單列出來(lái)不記錄日志的異常
        if ($exception instanceof FailedException ||
            $exception instanceof ValidateException ||
            $exception instanceof Abort ||
            $exception instanceof JwtTokenException ||
            $exception instanceof JwtTokenExpiredException) {
            return;
        }
        $logs = '';
        if ($request = \request()) {
            $logs = $request->getRealIp() . ' ' . $request->method() . ' ' . trim($request->fullUrl(), '/');
        }
        $this->logger->error($logs . PHP_EOL . $exception);
    }
  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??