Ведение журнала не работает в cakephp 3.3

#php #cakephp #logging #cakephp-3.0

#php #cakephp #ведение журнала #cakephp-3.0

Вопрос:

Это не имеет значения, когда я использую LogTrait или просто статические функции журнала, ничего не выводится в debug.файл журнала. Кажется, я не могу понять, почему. В bootstrap.php я вижу эту строку кода:

 Log::config(Configure::consume('Log'));
  

Это должно привести к app.php , но там ничего не настраивается для отладочного регистратора. Я не удалял никакого кода из app.php , поэтому я действительно не понимаю, как это внезапно перестает работать. В панели отладки на самом веб-сайте я могу видеть, что происходит в журнале, но если я, например, выполняю запрос post, который перенаправляет на другую страницу, я не вижу, что страница зарегистрирована, потому что в файл «debug.log» не было внесено никаких изменений

Я вызываю функцию журнала либо с помощью LogTrait в CakePHP:

 // I use the 'use LogTrait;' under the class declaration, and the 'use CakeLogLogTrait;' at the top of the file.
$this->log('message', 'debug');
  

Или путем вызова статической функции:

 CakeLogLog::debug('message');
  

Комментарии:

1. Доступны ли ваши файлы журналов и каталог для записи с помощью процесса веб-сервера?

Ответ №1:

Регистрация App.php это ваш Cakephp в режиме отладки

 'debug' => filter_var(env('DEBUG', false), FILTER_VALIDATE_BOOLEAN),
  

Также проверьте конфигурацию вашего php с помощью phpinfo() или в файле php.ini var error_reporting

Ответ №2:

Убедитесь, что ваш уровень отладки установлен на 1 или 2. Я получал аналогичную ошибку.В моем случае по умолчанию app.php настройки журнала были неправильными. Обновите следующие настройки и перезагрузите свой сервер.

 'Log' => [

    'debug' => [
        'className' => CakeLogEngineConsoleLog::class,
        'levels' => ['notice', 'info', 'debug'],
    ],
    'error' => [
        'className' => CakeLogEngineConsoleLog::class,
        'levels' => ['warning', 'error', 'critical', 'alert', 'emergency'],
    ],
],