Для работающего сайта, на мой взгляд, крайне нехорошо, когда пользователи видят сообщения о возникающих при его работе ошибках. Также часто бывает необходимо понять, почему сайт на Codeigniter работает с ошибками или не работает вовсе? При этом анализ логов сервера не всегда даёт полное представление о том что творится внутри сайта. Поэтому в этих и других случаях необходимо включить логирование ошибок (запись их в специальный файл) в самом Codeigniter.
Для этого нужно выполнить следующие простые действия:
Первое.
В файле index.php (который лежит в корневой папке вашего сайта) необходимо полностью отключить вывод ошибок (мы их в дальнейшем будем писать в файл). Для этого сразу после открывающего тега php добавьте строку
error_reporting(0);
Чтобы получилось вот так:
Второе.
В файле конфигурации /application/config/config.php в секции с заголовком «Error Logging Threshold» включить логирование ошибок и заодно установить — что именно будет логироваться . Для этого в переменной $config[‘log_threshold’] нужно установить вместо нуля (сбор данных не производится) новое значение из списка ниже:
0 = Отключить логирование совсем.
1 = Только сообщения об ошибках (включая ошибки PHP).
2 = Отладочные сообщения (включая ошибки фреймворка и ошибки php).
3 = Информационные сообщения.
4 = Все сообщения.
Для уже работающего сайта лучше всего включить сбор данных только об ошибках (1), так как в остальных случаях в логи пакуется также несусветная куча информационного мусора, который может только запутать:
$config['log_threshold'] = 1;
По умолчанию, логи создаются в папке /system/logs/ , но при необходимости можно указать и иное расположение в переменной $config[‘log_path’] указав путь от корневой папки Вашего хостинг-аккаунта (закрывающий слеш в конце обязателен!) например, вот так:
$config['log_path'] = '/home/имявашегоаккаунта/имясайта/my_logging_folder/';
Разумеется, папка для логов в этом случае должна быть создана заранее!
Сами же логи выглядят, например, вот так:
ERROR - 2022-01-11 00:05:44 --> Severity: Notice --> Use of undefined constant HTTP_HOST - assumed 'HTTP_HOST' /home/.../www/application/modules/core/core.php 282
ERROR - 2022-01-11 00:05:44 --> Severity: Notice --> Use of undefined constant REQUEST_URI - assumed 'REQUEST_URI' /home/.../www/application/modules/core/core.php 282
Прокомментировать