Spec-Zone.ru › CakePHP 4.2

Класс Log

Записывает сообщения в настроенные адаптеры Log. Один или несколько адаптеров могут быть настроены с помощью методов Cake Logs. Если вы не настроите ни одного адаптера и запишете в Log, сообщения будут проигнорированы.

Настройка адаптеров Log

Вы можете настроить адаптеры логов в вашем приложении в файле config/app.php. Пример конфигурации:

Log::setConfig('my_log', ['className' => 'FileLog']);

Вы можете определить className как любое полное имя класса с пространством имён или использовать короткое имя класса для использования логгеров в пространствах имён App\Log\Engine и Cake\Log\Engine. Вы также можете использовать сокращенное имя плагина для использования классов логирования, предоставляемых плагинами.

Адаптеры логов должны реализовывать Psr\Log\LoggerInterface, и существует встроенный базовый класс (Cake\Log\Engine\BaseLog), который можно использовать для пользовательских логгеров.

Вне ключа className все другие значения конфигурации будут переданы в конструктор адаптера логов в виде массива.

Уровни логирования

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

Log::setConfig('default', [
    'className' => 'File',
    'path' => LOGS,
    'levels' => ['error', 'critical', 'alert', 'emergency']
]);

Вышеупомянутый логгер будет записывать только сообщения об ошибках или более высокого уровня. Любые другие сообщения лога будут отброшены.

Области логирования

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

Log::setConfig('payments', [
    'className' => 'File',
    'scopes' => ['payment', 'order']
]);

Вышеупомянутый логгер будет улавливать только записи лога, созданные в областях payment и order. Все остальные области, включая неопределённую область, будут проигнорированы.

Запись в лог

Вы записываете в лог с помощью Log::write(). Смотрите документацию для получения дополнительной информации.

Уровни логирования

По умолчанию Cake Log поддерживает все уровни логирования, определенные в RFC 5424. При логировании сообщений вы можете использовать именованные методы или соответствующие константы с write().

Log::error('Something horrible happened');
Log::write(LOG_ERR, 'Something horrible happened');

Области логирования

При логировании сообщений и настройке адаптеров логов вы можете указать «области», которые будет обрабатывать логгер. Вы можете рассматривать области как подсистемы в вашем приложении, которые могут потребовать различных настроек логирования. Например, в приложении электронной коммерции вы можете по-разному обрабатывать ошибки, записанные в подсистемах корзины и оформления заказа, по сравнению с остальной частью приложения. С помощью областей вы можете контролировать логирование каждой части вашего приложения и использовать стандартные уровни логирования.

Пространство имён: Cake\Log

Резюме свойств

  • $_config protected static
    array

    Наборы конфигурации.

  • $_dirtyConfig protected static
    bool

    Внутренний флаг для отслеживания изменений конфигурации.

  • $_dsnClassMap protected static
    string[]

    Массив сопоставлений схем URL с полными именами классов движка Log.

  • $_levelMap protected static
    array

    Уровни логов, как подробно описано в RFC 5424 https://tools.ietf.org/html/rfc5424

  • $_levels protected static
    string[]

    Обрабатываемые уровни логов.

  • $_registry protected static
    Cake\Log\LogEngineRegistry

    Класс LogEngineRegistry.

Резюме методов

  • _init() protected static

    Инициализирует реестр и конфигурации.

  • _loadConfig() protected static

    Загружает определённую конфигурацию и создаёт все определённые адаптеры логирования.

  • alert() public static

    Метод для записи сообщений об оповещениях.

  • configured() public static

    Возвращает массив с именованными конфигурациями.

  • critical() public static

    Метод для записи критических сообщений.

  • debug() public static

    Метод для записи отладочных сообщений.

  • drop() public static

    Удаляет построенный адаптер.

  • emergency() public static

    Метод для записи сообщений об аварийных ситуациях.

  • engine() public static

    Получить движок логирования.

  • error() public static

    Метод для записи сообщений об ошибках.

  • getConfig() public static

    Читает существующую конфигурацию.

  • getConfigOrFail() public static

    Читает существующую конфигурацию для определённого ключа.

  • getDsnClassMap() public static

    Возвращает карту схем DSN для данного класса.

  • info() public static

    Метод для записи информационных сообщений.

  • levels() public static

    Получить уровни логов.

  • notice() public static

    Метод для записи сообщений о заметках.

  • parseDsn() public static

    Парсит DSN в корректную конфигурацию подключения.

  • reset() public static

    Сбрасывает все подключенные логгеры. Это полезно при изменении конфигурации логирования или во время тестирования, когда нужно сбросить внутреннее состояние класса Log.

  • setConfig() public static

    Этот метод может использоваться для определения адаптеров логирования для приложения или чтения существующей конфигурации.

  • setDsnClassMap() public static

    Обновляет карту схем DSN для данного класса.

  • warning() public static

    Метод для записи предупреждений.

  • write() public static

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

Подробное описание методов

_init() protected static

_init(): void

Инициализирует реестр и конфигурации

Возвращает

void

_loadConfig() protected static

_loadConfig(): void

Загружает определенную конфигурацию и создает все определенные адаптеры логирования.

Возвращает

void

alert() public static

alert(string $message, string|array $context = []): bool

Удобный метод для записи сообщений об ошибках

Параметры

string $message

сообщение для логирования

string|array $context дополнительно

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

Возвращает

bool

configured() public static

configured(): string[]

Возвращает массив, содержащий именованные конфигурации

Возвращает

string[]

critical() public static

critical(string $message, string|array $context = []): bool

Удобный метод для записи критических сообщений

Параметры

string $message

сообщение для логирования

string|array $context дополнительно

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

Возвращает

bool

debug() public static

debug(string $message, string|array $context = []): bool

Удобный метод для записи сообщений отладки

Параметры

string $message

сообщение для логирования

string|array $context дополнительно

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

Возвращает

bool

drop() public static

drop(string $config): bool

Удаляет построенный адаптер.

Если необходимо изменить существующую конфигурацию, необходимо удалить ее, изменить конфигурацию, а затем добавить ее заново.

Если реализующие объекты поддерживают объект $_registry, то именованная конфигурация также будет выгружена из реестра.

Параметры

string $config

Существующая конфигурация, которую нужно удалить.

Возвращает

bool

emergency() public static

emergency(string $message, string|array $context = []): bool

Удобный метод для записи сообщений об аварийных ситуациях

Параметры

string $message

сообщение для логирования

string|array $context дополнительно

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

Возвращает

bool

engine() public static

engine(string $name): Psr\Log\LoggerInterface|null

Получить лог-движок.

Параметры

string $name

Имя ключа сконфигурированного адаптера для получения.

Возвращает

Psr\Log\LoggerInterface|null

error() public static

error(string $message, string|array $context = []): bool

Удобный метод для записи сообщений об ошибках

Параметры

string $message

сообщение для логирования

string|array $context дополнительно

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

Возвращает

bool

getConfig() public static

getConfig(string $key): mixed|null

Чтение существующей конфигурации.

Параметры

string $key

Название конфигурации.

Возвращает

mixed|null

getConfigOrFail() public static

getConfigOrFail(string $key): mixed

Чтение существующей конфигурации для определенного ключа.

Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.

Параметры

string $key

Название конфигурации.

Возвращает

mixed

Исключения

InvalidArgumentException
Если значение не существует.

getDsnClassMap() public static

getDsnClassMap(): string[]

Возвращает карту классов DSN для данного класса.

Возвращает

string[]

info() public static

info(string $message, string|array $context = []): bool

Удобный метод для записи информационных сообщений

Параметры

string $message

сообщение для логирования

string|array $context дополнительно

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

Возвращает

bool

levels() public static

levels(): string[]

Получает уровни логирования

Вызовите этот метод для получения текущей конфигурации уровня.

Возвращает

string[]

notice() public static

notice(string $message, string|array $context = []): bool

Удобный метод для записи сообщений об уведомлениях

Параметры

string $message

сообщение для логирования

string|array $context дополнительно

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

Возвращает

bool

parseDsn() public static

parseDsn(string $dsn): array

Парсит DSN в корректную конфигурацию подключения

Этот метод позволяет задать DSN с использованием форматирования, аналогичного тому, которое используется в PEAR::DB. Ниже приведен пример его использования:

$dsn = 'mysql://user:pass@localhost/database?';
$config = ConnectionManager::parseDsn($dsn);

$dsn = 'Cake\Log\Engine\FileLog://?types=notice,info,debug&file=debug&path=LOGS';
$config = Log::parseDsn($dsn);

$dsn = 'smtp://user:secret@localhost:25?timeout=30&client=null&tls=null';
$config = Email::parseDsn($dsn);

$dsn = 'file:///?className=\My\Cache\Engine\FileEngine';
$config = Cache::parseDsn($dsn);

$dsn = 'File://?prefix=myapp_cake_core_&serialize=true&duration=+2 minutes&path=/tmp/persistent/';
$config = Cache::parseDsn($dsn);

Для всех классов значение scheme устанавливается в качестве значения className, если не указано иное.

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

Параметры

string $dsn

Строка DSN для преобразования в массив конфигурации

Возвращает

array

Выбрасывает

InvalidArgumentException
Если в качестве аргумента передано не строка или невалидная строка

reset() public static

reset(): void

Сбросить все подключенные логгеры. Это полезно при изменении конфигурации регистрации или при тестировании, когда необходимо сбросить внутреннее состояние класса Log.

Сбрасывает настроенные адаптеры регистрации, а также любые пользовательские уровни регистрации. Также будут очищены данные конфигурации.

Возвращает

void

setConfig() public static

setConfig(string|array $key, array|object|null $config = null): void

Этот метод можно использовать для определения адаптеров регистрации для приложения или чтения существующей конфигурации.

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

Логгеры не будут созданы до записи первого сообщения регистрации.

Использование

Настройка кеша.

Log::setConfig('default', $settings);

Ввод конструктивного адаптера в:

Log::setConfig('default', $instance);

Использование фабричной функции для получения адаптера:

Log::setConfig('default', function () { return new FileLog(); });

Настройка нескольких адаптеров одновременно:

Log::setConfig($arrayOfConfig);

Параметры

string|array $key

Имя конфигурации логгера или массив нескольких конфигураций.

array|object|null $config optional

Массив имен => данных конфигурации адаптера.

Возвращает

void

Выбрасывает

BadMethodCallException
При попытке изменить существующую конфигурацию.

setDsnClassMap() public static

setDsnClassMap(string[] $map): void

Обновляет карту классов DSN для данного класса.

Параметры

string[] $map

Добавления/изменения в карту классов для применения.

Возвращает

void

warning() public static

warning(string $message, string|array $context = []): bool

Удобный метод для регистрации сообщений об ошибках

Параметры

string $message

сообщение регистрации

string|array $context optional

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

Возвращает

bool

write() public static

write(int|string $level, string $message, string|array $context = []): bool

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

Уровни:

  • LOG_EMERG => 'emergency',
  • LOG_ALERT => 'alert',
  • LOG_CRIT => 'critical',
  • LOG_ERR => 'error',
  • LOG_WARNING => 'warning',
  • LOG_NOTICE => 'notice',
  • LOG_INFO => 'info',
  • LOG_DEBUG => 'debug',

Базовое использование

Записать сообщение 'warning' в лог:

Log::write('warning', 'Stuff is broken here');

Использование разделов

При записи сообщения регистрации вы можете определить один или несколько разделов для сообщения. Это позволяет обрабатывать сообщения по-разному в зависимости от раздела/функции приложения.

Log::write('warning', 'Payment failed', ['scope' => 'payment']);

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

Необработанные сообщения регистрации

Если ни один из настроенных логгеров не может обработать сообщение регистрации (из-за ограничений по уровню или разделу), то зарегистрированное сообщение будет проигнорировано и бесшумно удалено. Вы можете проверить, произошло ли это, посмотрев результат write(). Если false, сообщение не было обработано.

Параметры

int|string $level

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

string $message

Содержимое сообщения для регистрации

string|array $context optional

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

Возвращает

bool

Выбрасывает

InvalidArgumentException
Если передан неверный уровень.

Подробное описание свойств

$_config protected static

Наборы конфигурации.

Тип

array

$_dirtyConfig protected static

Внутренний флаг для отслеживания изменения конфигурации.

Тип

bool

$_dsnClassMap protected static

Массив, сопоставляющий схемы URL с полными именами классов движков регистрации

Тип

string[]

$_levelMap protected static

Уровни регистрации, подробно описанные в RFC 5424 https://tools.ietf.org/html/rfc5424

Тип

array

$_levels protected static

Обрабатываемые уровни регистрации

Тип

string[]

$_registry protected static

Класс LogEngineRegistry

Тип

Cake\Log\LogEngineRegistry

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.2/class-Cake.Log.Log.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API