log_message не работает в папке приложения в codeigniter - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть приложение Codeigniter, в котором я регистрирую сообщения об ошибках, отладку и информационные сообщения. В config.php я установил пороговое значение равным 4. Я мог видеть файл журнала в папке application / log. Теперь я попытался добавить пользовательский журнал из метода из контроллера. Я использовал

log_message("error", "this is my custom error");

Но это не вход в файл журнала. То, что я пробовал до сих пор

  • Изменено расположение файла журнала
  • Изменено разрешение файла журнала
  • Изменен уровень с помощью 'debug', 'info'.
  • Применил изменения в файлах сервера, чтобы проверить, работает ли он на другом сервере.

Ничего не записывается в журнал. В существующем файле журнала я вижу сообщения журнала из основных файлов. Я ничего не могу написать из папки приложения.

Ответы [ 2 ]

2 голосов
/ 30 сентября 2019

Для отладки обновите файл config.php следующим образом

$config['log_threshold'] = 4;
$config['log_path'] = '';
$config['log_file_extension'] = '';
$config['log_file_permissions'] = 0775;

В командной строке перейдите в папку «application» с помощью команды cd

Попробуйте эти команды

  1. sudo chgrp -R www-data logs/
  2. sudo chmod -R 775 logs/

Проверка журнала с использованием контроллера.

1 голос
/ 30 сентября 2019
  1. Убедитесь, что файл приложения / журналов CI имеет разрешение на запись от веб-пользователя.

  2. Вот соответствующие фрагменты из вашего приложения / config / config.phpфайл:

    $ config ['log_threshold'] = 4;$ config ['log_path'] = '';

  3. Перезагрузите веб-сервер (например, «/etc/init.d/apache2 stop / start» для многих версий Linux.

...

если вы абсолютно уверены, что ваш log_message () вызывается, и вы по-прежнему не видите никаких записей в «application / logs», то подумайте об изменении log_path на другой путь (например, / tmp, еслитолько для целей устранения неисправностей).

Однако даже "/ tmp" не является верным. Посмотрите на мой пост о том, как Systemd перенаправляет PHP / Apache в «приватный режим»:

Почему PHP 7.2 fopen (/ tmp, a) не записывает в файл?

В противном случае проблема может заключаться в SELinux:

CentOS 7 + SELinux + PHP + Apache - невозможно записать / получить доступ к файлу независимо от того, что

Удачи - и, пожалуйста, опубликуйте, что вы нашли!

...