ПРИМЕЧАНИЕ . Этот вопрос задан с идеей, что есть только один ответ, помеченный как Community Wiki , чтобы поощрять использование журнала ошибок, что, возможно, сэкономит нам часы, помогая найти причину почти всех ошибок конкретным способом. программирования.
Я использую PHP онлайн, связанный с доменом, размещенным на виртуальном хостинге.
В моем случае журнал ошибок представляет собой файл с именем error_log
, который создается в каждой папке, где есть файлы php, и один из этих файлов генерирует ошибку.
Когда что-то выходит из строя, первым делом нужно проверить errorlog
папку, в которой работает сбойный PHP-скрипт .
Из моего опыта ответов на вопросы здесь я понимаю, что большое количество пользователей не проверяют журнал ошибок, прежде чем задать вопрос . Некоторые говорят, что ломали голову днями или часами , не находя ошибки, и когда я это читаю, я всегда думаю: о, если бы я только знал, что существует журнал ошибок!
Частичный просмотр журнала ошибок с указанием пути к файлу, в котором произошел сбой, строки и причины ошибки.
Идея этого вопроса состоит в том, чтобы сгенерировать ответ, который мог бы быть вики сообщества, в котором указан способ доступа к журналу ошибок (согласно фреймворкам, или согласно хостингам, в которых у нас есть опыт).
Он также предназначен для того, чтобы привлечь внимание начинающих программистов или тех, кто уже начал какое-то время, к использованию такого полезного инструмента отладки, который, на мой взгляд, во многих случаях не используется из-за отсутствия знаний о нем.
Затем:
Как найти журнал ошибок для отладки наших программ в соответствии с используемой платформой или PHP-фреймворком?
В PHP журнал ошибок используется для:
Таким образом, этот файл содержит ценную информацию об ошибках, которые могут возникнуть в нашей программе.
Это будет первый источник, к которому можно обратиться, чтобы определить, где именно возникает ошибка , поскольку журнал ошибок дает информацию о пути к сбойному сценарию, причине сбоя и номере страницы, на которой обнаружена ошибка.
Многие могут задать вопрос: а где мне найти журнал ошибок, чтобы просмотреть его? Ответ не так прост, потому что его расположение и имя зависят от платформы/среды, которую мы используем.
Давайте рассмотрим этот ответ, используя два способа найти столь важный источник информации.
быстрый путь
По крайней мере, это даст нам знать, как называется наш файл. Зная ваше имя, мы сможем легче найти ваше местоположение.
Для этого мы можем выполнить на любой странице:
Этот вызов покажет всю конфигурацию нашего PHP. Обычно это много информации, поэтому вы можете выполнить поиск,
error
например, по слову. Кстати, проверьте, активирован журнал ошибок или нет.Вот почти все, что мы хотим знать:
error_log
display_errors
, то естьOff
. То есть, чтобы ошибки не отображались на экране клиента.Теперь нам просто нужно найти местоположение нашего файла ошибок. Что может варьироваться в зависимости от контекста. Например, в моем случае: виртуальный хостинг Bluehost для веб-страницы, в каждой папке создается файл. Когда файл в этой папке дает сбой, он записывается в журнал ошибок.
Еще нужно помнить, что последние ошибки всегда записываются в конец файла , а не в его начало. Если ошибок много, файл может вырасти, даже на много мегабайт. Чтобы этого избежать, в первую очередь нужно иметь оптимизированный код, конечно, избегая появления сообщений Undefined index type... Не ленитесь и проверяйте переменные, прежде чем пытаться их использовать.
Прямой маршрут (в зависимости от вашей платформы)
Вот таблица для заполнения с расположением журнала ошибок в соответствии с наиболее часто используемыми фреймворками или хостингами.
Ответ — Community Wiki, если у вас есть опыт работы с какой-либо средой/фреймворком, потратьте 3 минуты на его редактирование, указав в последней строке способ доступа к журналу ошибок.
Будьте осторожны, чтобы не повредить плату. Когда при написании какая-то вертикальная линия будет двигаться, переместите ее так, чтобы она была ниже других.
(*) Важно отметить, что ошибка будет записана в папку вызывающего скрипта. Если например у меня скрипт называется
llamador.php
, работает нормально, но вызывает с ошибкой другой файл, который называетсяllamado.php
, который находится в другой папке. Ошибка будет записана в папку, где находитсяllamador.php
, даже если это таllamado.php
самая ошибка. Конечно, журнал скажет нам, какая ошибка вllamado.php
.Ресурс 1: ссылка
Журнал ошибок в разработке
Если мы разрабатываем для Windows с Xampp (версия 3.x), журнал ошибок PHP доступен, выполнив следующие действия:
Это малоиспользуемая опция, поскольку, если у нас есть display_errors ON , «обычно» сам интерпретатор покажет нам ошибки, но это может быть необходимо, когда мы работаем со сторонним кодом, в котором ошибки были скрыты внутри самого кода.
Журнал собственных ошибок фреймворков
Фреймворки и некоторые другие инструменты могут реализовывать собственную систему ведения журналов, которая записывает ошибки, а иногда и другие типы сообщений.
Журналы Laravel 5 можно найти в каталоге «storage/logs/».
Чтобы получить доступ к журналу ошибок PHP, если мы работаем с XAMPP в Windows (версия 3.x):
Что касается фреймворков и некоторых других инструментов, каждый из них реализует свою собственную систему журналирования, в Laravel 5 мы можем найти их в каталоге «storage/logs/».
Вы можете получить журналы в маршруте PHP, если вы его пометили, но что произойдет, если вы его не пометите ?? Ну тоже есть.
Предполагая, что у вас есть базовые знания Apache2 и вы установили его на сервер gnu/linux.
Вы должны заглянуть в папку по умолчанию
/var/log/apache2/
, там вы найдете все журналы, созданные за деньapache2/PHP
Но что, если у вас есть несколько виртуальных хостов, и вы не знаете, какая веб-страница PHP выдала ошибку. Что ж, давайте просто посмотрим на виртуальный хост:
Как вы можете видеть, есть переменная
ErrorLog
, которая сообщает вам, где она находится (это${APACHE_LOG_DIR}
местоположение по умолчанию). Она также хранит ошибки PHP, поэтому вам не нужно включать ошибку PHP, если вы не хотите хранить ее в другом маршруте.ДОПОЛНИТЕЛЬНЫЙ: