Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Логгирование

Логгирование

Yii предоставляет мощную, гибко настраиваемую и легко расширяемую систему логгирования. Эта система логгирования позволяет удобным способом сохранять сообщения разных типов и фильтровать их. Сообщения могут быть сохранены в файлы, базы данных или отправлены на email.

Использование Системы логгирования Yii включает следующие шаги:



В данном разделе, будем рассматривать первые два шага.

  • Сообщения лога
  • Цели логов
    • Фильтрация сообщений
    • Форматирование сообщений
    • Уровень отслеживания выполнения кода
    • Передача на обработку и выгрузка сообщений
    • Передача на обработку и выгрузка сообщений
    • Создание новых целей
  • Профилирование производительности

Профилирование производительности

Профилирование производительности - это специальный тип сообщений логов, используемый для измерения времени выполнения определенных участков кода и определения проблем производительности. Например, класс [[yii\db\Command]] использует профилирование производительности для определения времени исполнения каждого запроса базы данных.

Для использования профилирования производительности нужно определить участок кода для измерения и обернуть его вызовами методов [[Yii::beginProfile()]] и [[Yii::endProfile()]]. Например,

\Yii::beginProfile('myBenchmark');

...участок кода для профилирования...

\Yii::endProfile('myBenchmark');

где myBenchmark является уникальным идентификатором данного измеряемого участка кода. В дальнейшем, при изучении результатов профилирования, уникальный идентификатор поможет определить время выполнения соответствующего участка кода.

Очень важно соблюдать уровни вложенности пар beginProfile и endProfile. Например,

\Yii::beginProfile('block1');

    // код для профилирования

    \Yii::beginProfile('block2');
        // другой код для профилирования
    \Yii::endProfile('block2');

\Yii::endProfile('block1');

Если пропустить \Yii::endProfile('block1') или поменять местами \Yii::endProfile('block1') и \Yii::endProfile('block2'), профилирование производительности не будет работать.

Для каждого участка кода, будет записано сообщение лога с уровнем важности profile. Для сбора таких сообщений можно настроить цель логов или воспользоваться Отладчиком Yii, который имеет встроенную панель профилирования производительности, отображающую результаты измерений.

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )


Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'