на php залогировать нельзя?
Я же пишу что-то типа такого:
$profiler = new profiler();
$profiler->start();
$profiler->parameter('url', 'http://example.com');
$profiler->parameter('method', 'GET');
$profiler->parameter('user', 'Ivan');
$profiler->parameter('orderId', 1234);
$profiler->sql(3000, "SELECT * FROM", array(23, 42));
Далее у меня продолжается выполнение кода на php. И где-то выскочила Fatal error. И всё, я же не могу это добавить в $profile, поскольку я не знаю где и как скрипт завершился. Верно?
Можно все обернуть в try и ловить \Throwable исключение
Да, это и сделал. Но будто костыль. Не?
У меня получается 2 статуса? 200, когда всё ок, и 500, когда исключение?
в идеале у тебя 500 быть не должно. Никогда. Это указывает что есть косяки в коде. А косяков в коде быть не должно. Должны быть статусы 20*, 30* и 4**
А как тогда в конце получить статус код? Я думал типа так: $status = 200; try{ … }catch{ $status = 500; } profiler->statusCode($status);
надо понять, что у тебя идет не так в блоке try. Такое поведение тобой как разработчиком предусматривалось? Если да, то почему что то пошло не так? С фронта кривой запрос пришел? тогда 400. Данные не валидны? 422. Доступа нет? 403 А если там твой косяк типа обращение к элементу массива по ключу, которого в массиве нет - то это надо устранить. Сделать проверку на наличие ключа, еще что то.
Обсуждают сегодня