#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'],
],
],