Класс 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'); Области логирования
При записи сообщений и настройке адаптеров логов можно указать «области», которые будет обрабатывать логгер. Вы можете рассматривать области как подсистемы в вашем приложении, которые могут потребовать различной настройки логирования. Например, в приложении электронной коммерции вы можете обрабатывать ошибки, записанные в подсистемах корзины и оформления заказов, иначе, чем остальную часть приложения. Используя области, вы можете управлять логированием каждой части вашего приложения и также использовать стандартные уровни логирования.
Краткое описание свойств
- $_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
Загружает определённую конфигурацию и создаёт все определённые адаптеры регистрации событий.
Возвращает
voidalert() public static
alert(string $message, array|string $context = []): bool
Удобный метод для регистрации сообщений об оповещениях
Параметры
-
string$message Сообщение для регистрации
-
array|string$context optional Дополнительные данные для использования при регистрации сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых логгеров. Если передана строка или массива с числовыми индексами, она будет обработана как ключscope. См. {@link \Cake\Log\Log::setConfig()} для получения дополнительной информации о диапазонах регистрации.
Возвращает
boolconfigured() 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()} для получения дополнительной информации о диапазонах регистрации.
Возвращает
booldebug() public static
debug(string $message, array|string $context = []): bool
Удобный метод для регистрации отладочных сообщений
Параметры
-
string$message Сообщение для регистрации
-
array|string$context optional Дополнительные данные для использования при регистрации сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых логгеров. Если передана строка или массива с числовыми индексами, она будет обработана как ключscope. См. {@link \Cake\Log\Log::setConfig()} для получения дополнительной информации о диапазонах регистрации.
Возвращает
booldrop() public static
drop(string $config): bool
Удаляет созданный адаптер.
Если вы хотите изменить существующую конфигурацию, вы должны удалить её, изменить конфигурацию, а затем повторно добавить её.
Если реализующие объекты поддерживают объект $_registry, имя конфигурации также будет выгружено из реестра.
Параметры
-
string$config Существующая конфигурация, которую вы хотите удалить.
Возвращает
boolemergency() public static
emergency(string $message, array|string $context = []): bool
Удобный метод для регистрации сообщений об экстренных ситуациях
Параметры
-
string$message Сообщение для регистрации
-
array|string$context optional Дополнительные данные для использования при регистрации сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых логгеров. Если передана строка или массива с числовыми индексами, она будет обработана как ключscope. См. {@link \Cake\Log\Log::setConfig()} для получения дополнительной информации о диапазонах регистрации.
Возвращает
boolengine() public static
engine(string $name): Psr\Log\LoggerInterface|null
Получение движка регистрации событий.
Параметры
-
string$name Имя ключа сконфигурированного адаптера для получения.
Возвращает
Psr\Log\LoggerInterface|nullerror() public static
error(string $message, array|string $context = []): bool
Удобный метод для регистрации сообщений об ошибках
Параметры
-
string$message Сообщение для регистрации
-
array|string$context optional Дополнительные данные для использования при регистрации сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых логгеров. Если передана строка или массива с числовыми индексами, она будет обработана как ключscope. См. {@link \Cake\Log\Log::setConfig()} для получения дополнительной информации о диапазонах регистрации.
Возвращает
boolgetConfig() public static
getConfig(string $key): mixed|null
Чтение существующей конфигурации.
Параметры
-
string$key Имя конфигурации.
Возвращает
mixed|nullgetConfigOrFail() 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()} для получения дополнительной информации о диапазонах регистрации.
Возвращает
boollevels() 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()} для получения дополнительной информации о диапазонах регистрации.
Возвращает
boolparseDsn() 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.
Сбрасывает настроенные адаптеры логирования, а также любые пользовательские уровни логирования. Также очищает данные конфигурации.
Возвращает
voidsetConfig() 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 Добавления/изменения в карте классов для применения.
Возвращает
voidwarning() public static
warning(string $message, array|string $context = []): bool
Удобный метод для записи сообщений об ошибках
Параметры
-
string$message Сообщение журнала
-
array|string$context optional Дополнительные данные, используемые для записи сообщения в журнал. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых движков журналов. Если передана строка или массив с числовыми индексами, он будет обработан как ключscope. Дополнительная информация о разделах логирования см. в {@link \Cake\Log\Log::setConfig()}
Возвращает
boolwrite() 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
$_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.4/class-Cake.Log.Log.html