Класс 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'); Области логирования
При логировании сообщений и настройке адаптеров логов вы можете указать «области», которые будет обрабатывать логгер. Вы можете рассматривать области как подсистемы в вашем приложении, которые могут потребовать различных настроек логирования. Например, в приложении электронной коммерции вы можете по-разному обрабатывать ошибки, записанные в подсистемах корзины и оформления заказа, по сравнению с остальной частью приложения. С помощью областей вы можете контролировать логирование каждой части вашего приложения и использовать стандартные уровни логирования.
Резюме свойств
- $_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
Загружает определенную конфигурацию и создает все определенные адаптеры логирования.
Возвращает
voidalert() public static
alert(string $message, string|array $context = []): bool
Удобный метод для записи сообщений об ошибках
Параметры
-
string$message сообщение для логирования
-
string|array$context дополнительно Дополнительные данные, используемые для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передана строка или числовой индексированный массив, он будет интерпретирован как ключscope. См. Cake\Log\Log::setConfig() для получения дополнительной информации о областях логирования.
Возвращает
boolconfigured() 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() для получения дополнительной информации о областях логирования.
Возвращает
booldebug() public static
debug(string $message, string|array $context = []): bool
Удобный метод для записи сообщений отладки
Параметры
-
string$message сообщение для логирования
-
string|array$context дополнительно Дополнительные данные, используемые для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передана строка или числовой индексированный массив, он будет интерпретирован как ключscope. См. Cake\Log\Log::setConfig() для получения дополнительной информации о областях логирования.
Возвращает
booldrop() public static
drop(string $config): bool
Удаляет построенный адаптер.
Если необходимо изменить существующую конфигурацию, необходимо удалить ее, изменить конфигурацию, а затем добавить ее заново.
Если реализующие объекты поддерживают объект $_registry, то именованная конфигурация также будет выгружена из реестра.
Параметры
-
string$config Существующая конфигурация, которую нужно удалить.
Возвращает
boolemergency() public static
emergency(string $message, string|array $context = []): bool
Удобный метод для записи сообщений об аварийных ситуациях
Параметры
-
string$message сообщение для логирования
-
string|array$context дополнительно Дополнительные данные, используемые для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передана строка или числовой индексированный массив, он будет интерпретирован как ключscope. См. 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, string|array $context = []): bool
Удобный метод для записи сообщений об ошибках
Параметры
-
string$message сообщение для логирования
-
string|array$context дополнительно Дополнительные данные, используемые для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передана строка или числовой индексированный массив, он будет интерпретирован как ключscope. См. 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(): string[]
Возвращает карту классов DSN для данного класса.
Возвращает
string[]info() public static
info(string $message, string|array $context = []): bool
Удобный метод для записи информационных сообщений
Параметры
-
string$message сообщение для логирования
-
string|array$context дополнительно Дополнительные данные, используемые для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передана строка или числовой индексированный массив, он будет интерпретирован как ключscope. См. Cake\Log\Log::setConfig() для получения дополнительной информации о областях логирования.
Возвращает
boollevels() 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() для получения дополнительной информации о областях логирования.
Возвращает
boolparseDsn() 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.
Сбрасывает настроенные адаптеры регистрации, а также любые пользовательские уровни регистрации. Также будут очищены данные конфигурации.
Возвращает
voidsetConfig() 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 Добавления/изменения в карту классов для применения.
Возвращает
voidwarning() public static
warning(string $message, string|array $context = []): bool
Удобный метод для регистрации сообщений об ошибках
Параметры
-
string$message сообщение регистрации
-
string|array$context optional Дополнительные данные для использования при регистрации сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых движков лога. Если передана строка или массив с численными индексами, он будет интерпретирован как ключscope. См. Cake\Log\Log::setConfig() для получения дополнительной информации о разделах регистрации.
Возвращает
boolwrite() 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
$_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