Учебники

CakePHP – ведение журнала

Вход в CakePHP – очень простая задача. Вам просто нужно использовать одну функцию. Вы можете регистрировать ошибки, исключения, пользовательские действия, действия, предпринятые пользователями , для любого фонового процесса, такого как cronjob . Регистрация данных в CakePHP проста – функция log () предоставляется LogTrait , который является общим предком почти для всех классов CakePHP.

Конфигурация журнала

Мы можем настроить журнал в файле config / app.php . В файле есть раздел журнала, в котором вы можете настроить параметры ведения журнала, как показано на следующем снимке экрана.

Конфигурация журнала

По умолчанию вы увидите два уровня журнала – ошибка и отладка, уже настроенные для вас. Каждый будет обрабатывать разные уровни сообщений.

CakePHP поддерживает различные уровни регистрации, как показано ниже –

  • Аварийная ситуация – система не работает

  • Предупреждение – действие должно быть предпринято немедленно

  • Критические – Критические условия

  • Ошибка – условия ошибки

  • Предупреждение – условия предупреждения

  • Обратите внимание – нормальное, но существенное состояние

  • Инфо – Информационные сообщения

  • Debug – сообщения уровня отладки

Аварийная ситуация – система не работает

Предупреждение – действие должно быть предпринято немедленно

Критические – Критические условия

Ошибка – условия ошибки

Предупреждение – условия предупреждения

Обратите внимание – нормальное, но существенное состояние

Инфо – Информационные сообщения

Debug – сообщения уровня отладки

Запись в файл журнала

Есть два способа записи в файл журнала.

Первый – использовать статический метод write () . Ниже приведен синтаксис статического метода write () .

Синтаксис запись (целое число | строка $ уровень , смешанное сообщение $ , строка | массив $ context [])
параметры

Уровень серьезности написанного сообщения. Значение должно быть целым числом или строкой, соответствующей известному уровню.

Содержание сообщения для входа.

Дополнительные данные, которые будут использоваться для регистрации сообщения. Специальный ключ scope может быть передан для использования для дальнейшей фильтрации используемых журналов. Если передана строка или числовой индексный массив, он будет рассматриваться как ключ области. Посмотрите Cake \ Log \ Log :: config () для получения дополнительной информации об областях регистрации.

Возвращает логический
Описание Записывает данное сообщение и вводит его во все настроенные адаптеры журнала. Настроенным адаптерам передаются переменные $ level и $ message. $ level является одной из следующих строк / значений.

Уровень серьезности написанного сообщения. Значение должно быть целым числом или строкой, соответствующей известному уровню.

Содержание сообщения для входа.

Дополнительные данные, которые будут использоваться для регистрации сообщения. Специальный ключ scope может быть передан для использования для дальнейшей фильтрации используемых журналов. Если передана строка или числовой индексный массив, он будет рассматриваться как ключ области. Посмотрите Cake \ Log \ Log :: config () для получения дополнительной информации об областях регистрации.

Второе – использовать функцию ярлыка log (), доступную на любом устройстве, использующем LogTrait. Вызов log () внутренне вызовет Log :: write ()

пример

Внесите изменения в файл config / rout.php, как показано в следующей программе.

конфиг / routes.php

<?php
   use Cake\Core\Plugin;
   use Cake\Routing\RouteBuilder;
   use Cake\Routing\Router;

   Router::defaultRouteClass('DashedRoute');
   Router::scope('/', function (RouteBuilder $routes) {
      $routes->connect('logex',['controller'=>'Logexs','action'=>'index']);
      $routes->fallbacks('DashedRoute');
   });
   Plugin::routes();

Создайте файл LogexController.php в src / Controller / LogexController.php . Скопируйте следующий код в файл контроллера.

SRC / Controller / LogexController.php

<?php
   namespace App\Controller;
   use App\Controller\AppController;
   use Cake\Log\Log;

   class LogexsController extends AppController{
      public function index(){
         /*The first way to write to log file.*/
         Log::write('debug',"Something didn't work.");
         
         /*The second way to write to log file.*/
         $this->log("Something didn't work.",'debug');
      }
   }
?>

Создайте каталог Logexs в src / Template и в этом каталоге создайте файл View с именем index.ctp . Скопируйте следующий код в этот файл.

SRC / Template / Logexs / index.ctp

Something is written in log file. Check log file logs\debug.log

Выполните приведенный выше пример, посетив следующий URL.

HTTP: // локальный: 85 / CakePHP / logex

Выход

После выполнения вы получите следующий вывод.