Класс Log
Записывает сообщения в настроенные адаптеры Log. Можно настроить один или несколько адаптеров, используя методы Cake Logs. Если вы не настраиваете адаптеры и записываете в Log, сообщения будут игнорироваться.
Настройка адаптеров Log
Вы можете настроить адаптеры логов в файле вашей приложения config/app.php. Пример конфигурации:
Log::config('my_log', ['className' => 'FileLog']); Вы можете определить className как любой полностью квалифицированный класс или использовать сокращенное имя класса для использования логгеров в пространствах имён App\Log\Engine и Cake\Log\Engine. Также можно использовать сокращенные имена плагинов для использования классов логгирования, предоставляемых плагинами.
Адаптеры логов должны реализовывать Psr\Log\LoggerInterface, и существует встроенный базовый класс (Cake\Log\Engine\BaseLog), который можно использовать для пользовательских логгеров.
Вне ключа className, все другие значения конфигурации будут переданы в конструктор адаптера логов в виде массива.
Уровни логгирования
При настройке логгеров можно задать уровни, которые будет обрабатывать логгер. Например, это позволяет отключить отладочные сообщения в продакшене:
Log::config('default', [
'className' => 'File',
'path' => LOGS,
'levels' => ['error', 'critical', 'alert', 'emergency']
]); Вышеуказанный логгер будет регистрировать только сообщения об ошибках и более высоких уровнях. Другие сообщения логов будут отброшены.
Области логгирования
При настройке логгеров вы можете определить активные области, для которых предназначен логгер. Если заданы, то только указанные области будут обрабатываться логгером. Если вы не зададите области, адаптер будет обрабатывать все области, соответствующие обработанным уровням.
Log::config('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 http://tools.ietf.org/html/rfc5424
- Обрабатываемые уровни логов
array - Класс LogEngineRegistry
Наследованные свойства
Краткое описание методов
- Инициализирует реестр и конфигурации
-
Загружает определённую конфигурацию и создаёт все определённые адаптеры логгирования.
- Метод-обёртка для записи сообщений об alert
-
Этот метод можно использовать для определения адаптеров логгирования для приложения или чтения существующей конфигурации.
- Метод-обёртка для записи сообщений о критических ошибках
- Метод-обёртка для записи отладочных сообщений
- Метод-обёртка для записи сообщений о критических ошибках
- Получить движок логгирования.
- Метод-обёртка для записи сообщений об ошибках
- Метод-обёртка для записи информационных сообщений
- Получить уровни логов
- Метод-обёртка для записи сообщений о важных событиях
-
Сбросить все подключенные логгеры. Это полезно при изменении конфигурации логгирования или во время тестирования, когда необходимо сбросить внутреннее состояние класса Log.
- Метод-обёртка для записи предупреждающих сообщений
-
Записывает заданное сообщение и тип во все настроенные адаптеры логов. Настроенные адаптеры получают как $level, так и $message. $level — это одна из следующих строк/значений.
Подробное описание методов
_loadConfig()source protected static
_loadConfig( )
Загружает определённую конфигурацию и создаёт все определённые адаптеры логгирования.
alert()source public static
alert( string $message , string|array $context [] )
Метод-обёртка для записи сообщений об alert
Параметры
- строка
$message - сообщение лога
- строка|массив
$contextнеобязательно [] Дополнительные данные, которые будут использоваться для записи сообщения в лог. Специальный ключ
scopeможет быть передан для дальнейшего фильтра лог-движков. Если передана строка или массива с числовыми индексами, она будет обработана как ключscope. См. Cake\Log\Log::config() для получения дополнительной информации о областях логгирования.
Возвращает
booleanУспешно
config()source public static
config( string|array $key , array|null $config null )
Этот метод можно использовать для определения адаптеров логгирования для приложения или чтения существующей конфигурации.
Для изменения конфигурации адаптера во время выполнения, сначала необходимо удалить адаптер, а затем переконфигурировать его.
Логгеры будут созданы только при записи первого сообщения в лог.
Использование
Чтение данных конфигурации обратно:
Log::config('default'); Настройка кэша.
Log::config('default', $settings); Ввод адаптера, созданного конструктором:
Log::config('default', $instance); Использование функции-фабрики для получения адаптера:
Log::config('default', function () { return new FileLog(); }); Настройка нескольких адаптеров одновременно:
Log::config($arrayOfConfig);
Параметры
- строка|массив
$key - Имя конфигурации логгера или массив нескольких конфигураций.
- массив|null
$configнеобязательно null - Массив пар имя => данные конфигурации адаптера.
Возвращает
массив|nullNull при добавлении конфигурации и массив данных конфигурации при чтении.
Исключения
BadMethodCallExceptionПри попытке изменить существующую конфигурацию.
critical()source public static
critical( string $message , string|array $context [] )
Метод для записи сообщений критической важности
Параметры
- строка
$message - сообщение для лога
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет обработан как ключscope. Подробнее о диапазонах логирования см. Cake\Log\Log::config().
Возвращает
booleanУспех
debug()source public static
debug( string $message , string|array $context [] )
Метод для записи отладочных сообщений
Параметры
- строка
$message - сообщение для лога
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет обработан как ключscope. Подробнее о диапазонах логирования см. Cake\Log\Log::config().
Возвращает
booleanУспех
emergency()source public static
emergency( string $message , string|array $context [] )
Метод для записи сообщений чрезвычайной важности
Параметры
- строка
$message - сообщение для лога
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет обработан как ключscope. Подробнее о диапазонах логирования см. Cake\Log\Log::config().
Возвращает
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::config().
Возвращает
booleanУспех
info()source public static
info( string $message , string|array $context [] )
Метод для записи информационных сообщений
Параметры
- строка
$message - сообщение для лога
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет обработан как ключscope. Подробнее о диапазонах логирования см. Cake\Log\Log::config().
Возвращает
booleanУспех
levels()source public static
levels( )
Получение уровней логов
Вызов этого метода для получения текущей конфигурации уровня.
Возвращает
массивактивные уровни логов
notice()source public static
notice( string $message , string|array $context [] )
Метод для записи сообщений о заметках
Параметры
- строка
$message - сообщение для лога
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет обработан как ключscope. Подробнее о диапазонах логирования см. Cake\Log\Log::config().
Возвращает
booleanУспех
reset()source public static
reset( )
Сброс всех подключенных логгеров. Это полезно при изменении конфигурации логирования или во время тестирования, когда требуется сбросить внутреннее состояние класса Log.
Сбрасывает настроенные адаптеры логирования, а также любые пользовательские уровни логирования. Также очищает данные конфигурации.
warning()source public static
warning( string $message , string|array $context [] )
Метод для записи предупреждений
Параметры
- строка
$message - сообщение для лога
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет обработан как ключscope. Подробнее о диапазонах логирования см. Cake\Log\Log::config().
Возвращает
booleanУспех
write()source public static
write( integer|string $level , mixed $message , string|array $context [] )
Запись указанного сообщения и типа во все настроенные адаптеры логирования. Настроенные адаптеры получают как переменную $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, сообщение не было обработано.
Параметры
- целое число|строка
$level Уровень серьезности записываемого сообщения. Значение должно быть целым числом или строкой, соответствующей известному уровню.
- смешанное
$message - Содержание сообщения для записи
- строка|массив
$contextнеобязательно [] Дополнительные данные для записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых лог-движков. Если передается строка или массив с числовыми индексами, он будет обработан как ключscope. Подробнее о диапазонах логирования см. Cake\Log\Log::config().
Возвращает
booleanУспех
Исключения
InvalidArgumentExceptionЕсли передан недопустимый уровень.
Методы, используемые из Cake\Core\StaticConfigTrait
configured()source public static
configured( )
Возвращает массив, содержащий именованные конфигурации
Возвращает
массивМассив конфигураций.
drop()source public static
drop( string $config )
Удаляет построенный адаптер.
Если вы хотите изменить существующую конфигурацию, вы должны её удалить, изменить конфигурацию, а затем повторно добавить.
Если реализующие объекты поддерживают объект $_registry, указанная конфигурация также будет выгружена из реестра.
Параметры
- строка
$config - Существующая конфигурация, которую вы хотите удалить.
Возвращаемое значение
booleanУспешность удаления, возвращает false, если конфигурация не существует.
dsnClassMap()source public static
dsnClassMap( array $map null )
Возвращает или обновляет карту классов DSN для данного класса
Параметры
- массив
$mapнеобязательно null - Дополнения/изменения в карте классов для применения
Возвращаемое значение
массивparseDsn()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, если не указано иное.
Обратите внимание, что аргументы запроса также анализируются и устанавливаются как значения в возвращаемой конфигурации.
Параметры
- строка
$dsn - Строка DSN, которую нужно преобразовать в массив конфигурации
Возвращаемое значение
массивМассив конфигурации для хранения после анализа DSN
Исключения
InvalidArgumentExceptionЕсли передан не строковый параметр
Подробное описание свойств
$_dirtyConfigsource
protected static boolean
Внутренний флаг для отслеживания изменений конфигурации.
false
$_dsnClassMapsource
protected static массив
Массив, сопоставляющий схемы URL с полными именами классов двигателя логов.
[
'console' => 'Cake\Log\Engine\ConsoleLog',
'file' => 'Cake\Log\Engine\FileLog',
'syslog' => 'Cake\Log\Engine\SyslogLog',
] $_levelMapsource
protected static массив
Уровни логов, как подробно описано в RFC 5424 http://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 массив
Обрабатываемые уровни логов
[
'emergency',
'alert',
'critical',
'error',
'warning',
'notice',
'info',
'debug'
]
© 2005–2017 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.3/class-Cake.Log.Log.html