Класс 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\Log использует Cake\Core\StaticConfigTrait
Резюме свойств
- Внутренний флаг для отслеживания изменений конфигурации.
boolean - Массив, сопоставляющий схемы URL с полными именами классов движка Log
array -
arrayУровни логов, как описано в RFC 5424 https://tools.ietf.org/html/rfc5424
- Обрабатываемые уровни логов
array - Класс LogEngineRegistry
Наследованные свойства
Резюме методов
- Инициализация реестра и конфигураций
-
Загрузка определенной конфигурации и создание всех определенных адаптеров логгирования.
- Метод для удобства записи сообщений об уведомлениях
- Метод для удобства записи критических сообщений
- Метод для удобства записи сообщений отладки
- Метод для удобства записи сообщений чрезвычайного характера
- Получение движка логгирования.
- Метод для удобства записи сообщений об ошибках
- Метод для удобства записи сообщений об информации
- Получение уровней логов
- Метод для удобства записи информационных сообщений
-
Сброс всех подключенных логгеров. Это полезно для изменения конфигурации логгирования или во время тестирования, когда необходимо сбросить внутреннее состояние класса Log.
-
Этот метод может использоваться для определения адаптеров логгирования для приложения или чтения существующей конфигурации.
- Метод для удобства записи предупреждающих сообщений
-
Записывает указанное сообщение и тип во все настроенные адаптеры логов. Настроенные адаптеры получают как переменную $level, так и переменную $message. $level — это одна из следующих строк/значений.
Подробное описание методов
_loadConfig()source protected static
_loadConfig( )
Загрузка определенной конфигурации и создание всех определенных адаптеров логгирования.
alert()source public static
alert( string $message , string|array $context = [] )
Метод для удобства записи сообщений об уведомлениях
Параметры
- строка
$message - сообщение лога
- строка|массив
$contextнеобязательно [] Дополнительные данные, используемые для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации движков логов. Если передана строка или массивная переменная с индексами, она будет обработана как ключscope. Дополнительную информацию о областях логгирования см. в Cake\Log\Log::setConfig().
Возвращаемое значение
booleanУспех
critical()source public static
critical( string $message , string|array $context = [] )
Метод для удобства записи критических сообщений
Параметры
- строка
$message - сообщение лога
- строка|массив
$contextнеобязательно [] Дополнительные данные, используемые для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации движков логов. Если передана строка или массивная переменная с индексами, она будет обработана как ключscope. Дополнительную информацию о областях логгирования см. в Cake\Log\Log::setConfig().
Возвращаемое значение
booleanУспех
debug()source public static
debug( string $message , string|array $context = [] )
Метод для удобства записи сообщений отладки
Параметры
- строка
$message - сообщение лога
- строка|массив
$contextнеобязательно [] Дополнительные данные, используемые для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации движков логов. Если передана строка или массивная переменная с индексами, она будет обработана как ключscope. Дополнительную информацию о областях логгирования см. в Cake\Log\Log::setConfig().
Возвращаемое значение
booleanУспех
emergency()source public static
emergency( string $message , string|array $context = [] )
Метод для записи сообщений об аварийных ситуациях.
Параметры
- строка
$message - сообщение журнала
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет интерпретирован как ключscope. См. Cake\Log\Log::setConfig() для получения дополнительной информации о разделах журнала.
Возвращает
booleanУспех
engine()source public static
engine( string $name )
Получение лог-движка.
Параметры
- строка
$name - Имя ключа настроенного адаптера для получения.
Возвращает
Cake\Log\Engine\BaseLog|falseЭкземпляр BaseLog или false, если не найден
error()source public static
error( string $message , string|array $context = [] )
Метод для записи сообщений об ошибках.
Параметры
- строка
$message - сообщение журнала
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет интерпретирован как ключscope. См. Cake\Log\Log::setConfig() для получения дополнительной информации о разделах журнала.
Возвращает
booleanУспех
info()source public static
info( string $message , string|array $context = [] )
Метод для записи информационных сообщений.
Параметры
- строка
$message - сообщение журнала
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет интерпретирован как ключscope. См. Cake\Log\Log::setConfig() для получения дополнительной информации о разделах журнала.
Возвращает
booleanУспех
levels()source public static
levels( )
Получение уровней журнала.
Вызовите этот метод для получения текущей конфигурации уровней.
Возвращает
массивактивные уровни журнала
notice()source public static
notice( string $message , string|array $context = [] )
Метод для записи сообщений о замечаниях.
Параметры
- строка
$message - сообщение журнала
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет интерпретирован как ключscope. См. Cake\Log\Log::setConfig() для получения дополнительной информации о разделах журнала.
Возвращает
booleanУспех
reset()source public static
reset( )
Сброс всех подключенных логгеров. Это полезно при изменении конфигурации журналов или во время тестирования, когда требуется сбросить внутреннее состояние класса Log.
Сбрасывает настроенные адаптеры журналов, а также любые пользовательские уровни журналов. Это также очистит данные конфигурации.
setConfig()source public static
setConfig( string|array $key , array|null $config = null )
Этот метод может использоваться для определения адаптеров журналов для приложения или чтения существующей конфигурации.
Чтобы изменить конфигурацию адаптера во время выполнения, сначала удалите адаптер, а затем переконфигурируйте его.
Логгеры не будут созданы до первого записи сообщения журнала.
Использование
Настройка движка кэша.
Log::setConfig('default', $settings); Вставка построенного адаптера:
Log::setConfig('default', $instance); Использование функции-фабрики для получения адаптера:
Log::setConfig('default', function () { return new FileLog(); }); Настройка нескольких адаптеров одновременно:
Log::setConfig($arrayOfConfig);
Параметры
- строка|массив
$key - Имя конфигурации логгера или массив с несколькими конфигурациями.
- массив|null
$configнеобязательно null - Массив данных конфигурации адаптера по имени.
Выбрасывает
BadMethodCallExceptionПри попытке изменить существующую конфигурацию.
warning()source public static
warning( string $message , string|array $context = [] )
Метод для записи предупреждающих сообщений.
Параметры
- строка
$message - сообщение журнала
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет интерпретирован как ключscope. См. Cake\Log\Log::setConfig() для получения дополнительной информации о разделах журнала.
Возвращает
booleanУспех
write()source public static
write( integer|string $level , mixed $message , string|array $context = [] )
Запись указанного сообщения и типа во все настроенные адаптеры журналов. Настроенные адаптеры получают как переменную $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, сообщение не было обработано.
Параметры
- целое число|строка
$level Уровень серьезности записываемого сообщения. Значение должно быть целым числом или строкой, соответствующей известному уровню.
- смешанный
$message - Содержимое сообщения для записи в журнал
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет интерпретирован как ключscope. См. Cake\Log\Log::setConfig() для получения дополнительной информации о разделах журнала.
Возвращает
booleanУспех
Выбрасывает
InvalidArgumentExceptionЕсли передан неверный уровень.
Методы, используемые из Cake\Core\StaticConfigTrait
config()source public static deprecated
config( string|array $key , array|null $config = null )
Этот метод можно использовать для определения адаптеров конфигурации для приложения или чтения существующей конфигурации.
Чтобы изменить конфигурацию адаптера во время выполнения, сначала удалите адаптер, а затем переконфигурируйте его.
Адаптеры не будут созданы до выполнения первого действия.
Использование
Предполагая, что имя класса Cache , поддерживаются следующие сценарии:
Чтение данных конфигурации обратно:
Cache::config('default'); Настройка движка кеша.
Cache::config('default', $settings); Вставка созданного адаптера:
Cache::config('default', $instance); Настройка нескольких адаптеров одновременно:
Cache::config($arrayOfConfig);
Устарело
3.4.0 Используйте setConfig()/getConfig() вместо этого.Параметры
- string|array
$key - Имя конфигурации или массив нескольких конфигураций.
- array|null
$configoptional null - Массив пар имя => данные конфигурации для адаптера.
Возвращает
array|nullNull при добавлении конфигурации или массив данных конфигурации при чтении.
Выбрасывает
BadMethodCallExceptionПри попытке изменить существующую конфигурацию.
configured()source public static
configured( )
Возвращает массив, содержащий именованные конфигурации.
Возвращает
string[]Массив конфигураций.
drop()source public static
drop( string $config )
Удаляет созданный адаптер.
Если вы хотите изменить существующую конфигурацию, вы должны удалить ее, изменить конфигурацию, а затем повторно добавить ее.
Если реализующие объекты поддерживают объект $_registry , именованная конфигурация также будет загружена из реестра.
Параметры
- string
$config - Существующая конфигурация, которую вы хотите удалить.
Возвращает
booleanУспех удаления, возвращает false, когда конфигурация не существует.
dsnClassMap()source public static deprecated
dsnClassMap( array $map = null )
Возвращает или обновляет карту классов DSN для этого класса.
Устарело
3.4.0 Используйте setDsnClassMap()/getDsnClassMap() вместо этого.Параметры
- array
$mapoptional null - Добавления/изменения в карту классов для применения.
Возвращает
arraygetConfig()source public static
getConfig( string $key )
Читает существующую конфигурацию.
Параметры
- string
$key - Имя конфигурации.
Возвращает
mixedДанные конфигурации по указанному ключу или null, если ключ не существует.
getDsnClassMap()source public static
getDsnClassMap( )
Возвращает карту классов DSN для этого класса.
Возвращает
arrayparseDsn()source public static
parseDsn( string $dsn )
Парсит 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Массив конфигурации, который будет сохранён после анализа DSN
Выбрасывает
InvalidArgumentExceptionЕсли не передан строковый параметр или передан недопустимый строковый параметр
setDsnClassMap()source public static
setDsnClassMap( array $map )
Обновляет карту классов DSN для этого класса.
Параметры
- array
$map - Добавления/изменения в карту классов для применения.
Подробное описание свойств
$_dirtyConfigsource
protected static boolean
Внутренний флаг для отслеживания того, была ли изменена конфигурация.
false
$_dsnClassMapsource
protected static array
Массив, сопоставляющий схемы URL с полными именами классов движка логов.
[
'console' => 'Cake\Log\Engine\ConsoleLog',
'file' => 'Cake\Log\Engine\FileLog',
'syslog' => 'Cake\Log\Engine\SyslogLog',
] $_levelMapsource
protected static array
Уровни логов, как указано в RFC 5424 https://tools.ietf.org/html/rfc5424
[
'emergency' => LOG_EMERG,
'alert' => LOG_ALERT,
'critical' => LOG_CRIT,
'error' => LOG_ERR,
'warning' => LOG_WARNING,
'notice' => LOG_NOTICE,
'info' => LOG_INFO,
'debug' => LOG_DEBUG,
] $_levelssource
protected static array
Обрабатываемые уровни логов
[
'emergency',
'alert',
'critical',
'error',
'warning',
'notice',
'info',
'debug'
]
© 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/3.8/class-Cake.Log.Log.html