FastAdmin 生产环境下日志未记录到异常

最近收到业务中有接口报 500,但查阅了那个时段的日志,都没有存在异常日志。

经过排查 application/api/library/ExceptionHandle.php 是 api 模块的异常捕获处理,不过里面只处理了开发环境,生产环境则交由系统处理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php

namespace app\api\library;

use Exception;
use think\exception\Handle;

/**
* 自定义API模块的错误显示
*/
class ExceptionHandle extends Handle
{

public function render(Exception $e)
{
// 在生产环境下返回code信息
if (!\think\Config::get('app_debug')) {
...
}

// 非验证和 HTTP 返回异常才记录错误信息
if (!$e instanceof \think\exception\ValidateException
&& !$e instanceof \think\exception\HttpException) {
trace(sprintf('%s:%s|%d %s', '系统异常', $e->getFile(), $e->getLine(), $e->getMessage()), 'error');
}

//其它此交由系统处理
return parent::render($e);
}
}
往上