Как отключить ведение журнала для определенных контроллеров в CodeIgniter? - PullRequest
0 голосов
/ 07 ноября 2018

Мое веб-приложение имеет много зацикленных ajax-запросов, которые получают контент от разных контроллеров, и оно увеличивает размер моего ежедневного журнала до 2 ГБ. Есть ли способ отключить ведение журнала только для определенных контроллеров при вызове? Ведение журнала должно быть отключено на первом экземпляре контроллера, а затем снова включено непосредственно перед вызовом метода load-> view.

1 Ответ

0 голосов
/ 07 ноября 2018

Как вы, вероятно, знаете, пороги регистрации ошибок

0 = Disables logging (TURNED OFF)
1 = Error Messages (including PHP errors) 
2 = Debug Messages 
3 = Informational Messages 
4 = All Messages

Вы можете использовать следующее, чтобы отключить выход из системы.

$ this-> config-> set_item ('log_threshold', 0);

Это можно сделать в определенных методах контроллера или в конструкторе контроллера, если вы хотите, чтобы все его методы прекратили протоколирование.

Чтобы возобновить запись в журнал, т. Е. На уровне «Все сообщения», запустите эту команду

$this->config->set_item('log_threshold', 4);

Поймите, что любые вызовы config->set_item() НЕ являются постоянными. Вызов не изменяет содержимое файла config.php, поэтому в следующий раз, когда сайт получит запрос, он будет использовать пороговое значение журнала, как определено в файле конфигурации.

Аналогично, если после динамического изменения уровня файл конфигурации перезагружается, он перезаписывает динамически назначенное значение. AFAIK, CodeIgniter загружает конфигурационные файлы только один раз для каждого экземпляра платформы. Но разработчики иногда делают странные вещи.

...