Помилки і логирование

конфігурація

Можливості логгірованія для вашого програм існують у класі Illuminate \ Foundation \ Bootstrap \ ConfigureLogging. Це клас використовує параметр log з файлу config / app.php.

За замовчуванням, логгер налаштований на щоденну зміну файлу, але ви можете змінити цю поведінку. Так як Laravel використовує для логгірованія популярну бібліотеку Monolog. то ви можете використовувати велику кількість існуючих обробників, які пропонує Monolog.

Наприклад, якщо ви хочете, щоб все логи писалися в один файл замість щоденної зміни файлу, ви можете змінити файл config / app.php так:

«З коробки» Laravel підтримує три режими логгірованія: single. daily. and syslog. але ви можете налаштувати механізм логгірованія так, як вам потрібно шляхом перевизначення класу ConfigureLogging.

деталізація помилок

Докладна деталізація помилок вашого застосування, яка відображається в браузері, контролюється параметром app.debug в файлі config / app.php За замовчуванням цей параметр визначається змінного оточуючого середовища APP_DEBUG. яка встановлена ​​в файлі .env.

Під час розробки на локальній машині рекомендується встановити значення змінної APP_DEBUG в true.

Примітка Радимо відключати деталізації помилок для робочого середовища виконання.

Обробка помилок

Всі виключення обробляються класом App \ Exceptions \ Handler. який містить два методи: report і render

Метод report використовується для логгірованія винятків в файл або відправки інформації на сторонній сервіс логгірованія типу BugSnag. За замовчуванням, метод report просто передає виняток своєму базовому класу, який його логгірует, однак ви можете змінити цю поведінку. Якщо необхідно обробляти різні типи винятків різними шляхами, то можна використовувати оператор PHP instanceof:

Метод render служить для перетворення виключення у відповідь, який можна відправити в браузер. За замовчуванням, виняток просто передається в базовий клас, але ви можете змінити цю поведінку, наприклад, перевіряти тип виключення для генерації різних відповідей.

Властивість dontReport обробника виключення містить масив типів винятків, які не будуть логгіроваться. За замовчуванням, виключення, викинуті в результаті помилки 404 НЕ логгіруются. Ви можете додати і інші типи винятків в цей масив.

HTTP-виключення

Опціонально, ви можете встановити свою відповідь для повернення в браузер:

Ці виключення можуть бути порушені на будь-якому етапі обробки запиту.

Зміна сторінки 404

Для зміни сторінки, що видається при помилку 404, необхідно створити файл resources / views / errors / 404.blade.php.

Логування

Стандартний механізм логування є простою надбудову над потужною системою Monolog. За замовчуванням Laravel налаштований так, щоб створювати новий файл журналу кожен день в каталозі storage / logs. Ви можете записувати в лог інформацію таким чином:

У метод запису можна передати масив даних про поточний стан:

Monolog має безліч інших методів, які вам можуть стати в нагоді. Якщо потрібно, ви можете отримати примірник його класу:

Ви також можете зареєструвати обробник подій для відстеження всіх нових повідомлень:

Відстеження нових повідомлень в балці

Схожі статті