Spec-Zone.ru › CakePHP 4.3

Класс Log

Записывает сообщения в настроенные адаптеры логов. Один или несколько адаптеров можно настроить с помощью методов Cake Logs. Если вы не настроите адаптеры и запишете в 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<string, mixed>

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

  • $_dirtyConfig protected static
    bool

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

  • $_dsnClassMap protected static
    array<string, string>

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

  • $_levelMap protected static
    array<string, int>

    Уровни логирования, как указано в RFC 5424 https://tools.ietf.org/html/rfc5424

  • $_levels protected static
    array<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, array|string $context = []): bool

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

Параметры

string $message

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

array|string $context optional

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

Возвращает

bool

configured() public static

configured(): array<string>

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

Возвращает

array<string>

critical() public static

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

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

Параметры

string $message

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

array|string $context optional

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

Возвращает

bool

debug() public static

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

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

Параметры

string $message

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

array|string $context optional

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

Возвращает

bool

drop() public static

drop(string $config): bool

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

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

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

Параметры

string $config

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

Возвращает

bool

emergency() public static

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

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

Параметры

string $message

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

array|string $context optional

Дополнительные данные для использования при регистрации сообщения. Специальный ключ scope может быть передан для дальнейшей фильтрации используемых логгеров. Если передана строка или массива с числовыми индексами, она будет обработана как ключ scope. См. {@link \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, array|string $context = []): bool

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

Параметры

string $message

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

array|string $context optional

Дополнительные данные для использования при регистрации сообщения. Специальный ключ scope может быть передан для дальнейшей фильтрации используемых логгеров. Если передана строка или массива с числовыми индексами, она будет обработана как ключ scope. См. {@link \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(): array<string, string>

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

Возвращает

array<string, string>

info() public static

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

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

Параметры

string $message

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

array|string $context optional

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

Возвращает

bool

levels() public static

levels(): array<string>

Получение уровней регистрации событий

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

Возвращает

array<string>

notice() public static

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

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

Параметры

string $message

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

array|string $context optional

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

Возвращает

bool

parseDsn() public static

parseDsn(string $dsn): array<string, mixed>

Парсит 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<string, mixed>

Выбрасывает

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

reset() public static

reset(): void

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

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

Возвращает

void

setConfig() public static

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

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

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

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

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

Настройка кеш-движка.

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

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

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

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

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

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

Log::setConfig($arrayOfConfig);

Параметры

array<string, mixed>|string $key

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

object|array<string, mixed>|null $config optional

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

Возвращает

void

Выбрасывает

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

setDsnClassMap() public static

setDsnClassMap(array<string, string> $map): void

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

Параметры

array<string, string> $map

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

Возвращает

void

warning() public static

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

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

Параметры

string $message

Сообщение журнала

array|string $context optional

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

Возвращает

bool

write() public static

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

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

Уровни:

  • LOG_EMERG => 'критический',
  • LOG_ALERT => 'сигнализация',
  • LOG_CRIT => 'критичный',
  • LOG_ERR => 'ошибка',
  • LOG_WARNING => 'предупреждение',
  • LOG_NOTICE => 'уведомление',
  • LOG_INFO => 'информация',
  • LOG_DEBUG => 'отладка',

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

Запись сообщения 'предупреждение' в журналы:

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

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

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

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

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

Необработанные сообщения журналов

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

Параметры

string|int $level

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

string $message

Содержимое сообщения, подлежащего записи в журнал

array|string $context optional

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

Возвращает

bool

Выбрасывает

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

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

$_config protected static

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

Тип

array<string, mixed>

$_dirtyConfig protected static

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

Тип

bool

$_dsnClassMap protected static

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

Тип

array<string, string>

$_levelMap protected static

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

Тип

array<string, int>

$_levels protected static

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

Тип

array<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.3/class-Cake.Log.Log.html

Spec-Zone.ru

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