在 Laravel Telescope 调试工具的“请求”面板中,有没有办法只记录一些请求,而不是所有请求?
例如,除了状态为 200
或 302
的请求之外的所有请求。
我试图修改 config/telescope.php
文件,尤其是那部分
Watchers\RequestWatcher::class => [
'enabled' => env('TELESCOPE_REQUEST_WATCHER', true),
'size_limit' => env('TELESCOPE_RESPONSE_SIZE_LIMIT', 64),
]
但我没有找到任何关于页面状态的选项。
我也尝试修改 TelescopeServiceProvider.php
文件,register()
方法但没有成功。
感谢您的帮助
答案 0 :(得分:1)
Telescope 允许您通过“标签”搜索条目。通常,标签是 Eloquent 模型类名称或经过身份验证的用户 ID,Telescope 会自动添加到条目中。有时,您可能希望将自己的自定义标签附加到条目。为此,您可以使用 Telescope::tag
方法。 tag 方法接受一个应该返回一个标签数组的闭包。闭包返回的 tags
将与 Telescope 自动附加到条目的任何标签合并。通常,您应该在 tag
类的 register
方法中调用 App\Providers\TelescopeServiceProvider
方法:
use Laravel\Telescope\IncomingEntry;
use Laravel\Telescope\Telescope;
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->hideSensitiveRequestDetails();
Telescope::tag(function (IncomingEntry $entry) {
return $entry->type == 'request' && $entry->content['response_status'] == 302) ;
});
}
您也可以使用 filter
方法代替标记来执行相同的操作。
答案 1 :(得分:1)
感谢@MrEduar,我能够以这种方式做到这一点:
Telescope::filter(function (IncomingEntry $entry) {
if($entry->type == 'request' && !in_array($entry->content['response_status'], [200, 302])){
return true;
}else {
return $entry->isReportableException() ||
$entry->isFailedRequest() ||
$entry->isFailedJob() ||
$entry->isScheduledTask() ||
$entry->hasMonitoredTag();
}
});