Для работающего сайта, на мой взгляд, крайне нехорошо, когда пользователи видят сообщения о возникающих при его работе ошибках. Также часто бывает необходимо понять, почему сайт на Codeigniter работает с ошибками или не работает вовсе? При этом анализ логов сервера не всегда даёт полное представление о том что творится внутри сайта. Поэтому в этих и других случаях необходимо включить логирование ошибок (запись их в специальный файл) в самом Codeigniter.

Для этого нужно выполнить следующие простые действия:

Первое.

В файле index.php (который лежит в корневой папке вашего сайта) необходимо полностью отключить вывод ошибок (мы их в дальнейшем будем писать в файл). Для этого сразу после открывающего тега php добавьте строку

error_reporting(0);

Чтобы получилось вот так:

 

Изменения, которые необходимо внести в index.php

Изменения, которые необходимо внести в index.php

Второе.

В файле конфигурации /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 - 2014-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 - 2014-01-11 00:05:44 --> Severity: Notice --> Use of undefined constant REQUEST_URI - assumed 'REQUEST_URI' /home/.../www/application/modules/core/core.php 282