Класс Log
Записывает сообщения в настроенные адаптеры Log. Один или несколько адаптеров можно настроить с помощью методов Cake Logs. Если вы не настроите никаких адаптеров и напишите в Log, сообщения будут проигнорированы.
Настройка адаптеров Log
Вы можете настроить адаптеры логов в вашем приложении в файле config/app.php. Пример конфигурации:
Log::config('my_log', ['className' => 'FileLog']);
Вы можете определить className как любое полное имя класса или использовать сокращённое имя класса для использования логгеров в пространствах имён App\Log\Engine и Cake\Log\Engine. Вы также можете использовать сокращённое имя плагина для использования классов логирования, предоставляемых плагинами.
Адаптеры Log обязаны реализовывать 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
Подробное описание метода
_loadConfigsource protected static
_loadConfig( )
Загружает определённую конфигурацию и создаёт все определённые адаптеры логирования.
alertsource public static
alert( string $message , string|array $context [] )
Удобный метод для регистрации сообщений об ошибках
Параметры
- строка
$message - сообщение для журнала
- строка|массив
$contextнеобязательно [] - Дополнительные данные, которые будут использоваться для регистрации сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых движков журнала. Если передаётся строка или массив с числовыми индексами, он будет интерпретироваться как ключscope. См. Cake\Log\Log::config() для получения дополнительной информации об областях логирования.
Возвращает
booleanУспех
configsource 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 - Массив с именем = данные конфигурации для адаптера.
Возвращает
array|nullNull при добавлении конфигурации и массив данных конфигурации при чтении.
Выбрасывает
BadMethodCallExceptionПри попытке изменения существующей конфигурации.
criticalsource public static
critical( string $message , string|array $context [] )
Удобный метод для регистрации критических сообщений
Параметры
- строка
$message - сообщение для журнала
- строка|массив
$contextнеобязательно [] - Дополнительные данные, которые будут использоваться для регистрации сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых движков журнала. Если передаётся строка или массив с числовыми индексами, он будет интерпретироваться как ключscope. См. Cake\Log\Log::config() для получения дополнительной информации об областях логирования.
Возвращает
booleanУспех
debugsource public static
debug( string $message , string|array $context [] )
Удобный метод для регистрации сообщений отладки
Параметры
- строка
$message - сообщение для журнала
- строка|массив
$contextнеобязательно [] - Дополнительные данные, которые будут использоваться для регистрации сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых движков журнала. Если передаётся строка или массив с числовыми индексами, он будет интерпретироваться как ключscope. См. Cake\Log\Log::config() для получения дополнительной информации об областях логирования.
Возвращает
booleanУспех
emergencysource public static
emergency( string $message , string|array $context [] )
Удобный метод для регистрации критических сообщений
Параметры
- строка
$message - сообщение для журнала
- строка|массив
$contextнеобязательно [] - Дополнительные данные, которые будут использоваться для регистрации сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых движков журнала. Если передаётся строка или массив с числовыми индексами, он будет интерпретироваться как ключscope. См. Cake\Log\Log::config() для получения дополнительной информации об областях логирования.
Возвращает
booleanУспех
enginesource public static
engine( string $name )
Получить движок логирования.
Параметры
- строка
$name - Имя ключа настроенного адаптера для получения.
Возвращает
Cake\Log\Engine\BaseLog|falseЭкземпляр BaseLog или false, если не найден
errorsource public static
error( string $message , string|array $context [] )
Удобный метод для регистрации сообщений об ошибках
Параметры
- строка
$message - сообщение для журнала
- строка|массив
$contextнеобязательно [] - Дополнительные данные, которые будут использоваться для регистрации сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых движков журнала. Если передаётся строка или массив с числовыми индексами, он будет интерпретироваться как ключscope. См. Cake\Log\Log::config() для получения дополнительной информации об областях логирования.
Возвращает
booleanУспех
infosource public static
info( string $message , string|array $context [] )
Удобный метод для регистрации информационных сообщений
Параметры
- строка
$message - сообщение для журнала
- строка|массив
$contextнеобязательно [] - Дополнительные данные, которые будут использоваться для регистрации сообщения. Специальный ключ
scopeможет быть передан для дальнейшего фильтрации используемых движков журнала. Если передаётся строка или массив с числовыми индексами, он будет интерпретироваться как ключscope. См. Cake\Log\Log::config() для получения дополнительной информации об областях логирования.
Возвращает
booleanУспех
levelssource public static
levels( )
Получает уровни логов
Вызовите этот метод, чтобы получить текущую конфигурацию уровня.
Возвращает
arrayактивные уровни логов
noticesource public static
notice( string $message , string|array $context [] )
Удобный метод для записи сообщений о событиях
Параметры
- string
$message - сообщение лога
- string|array
$contextoptional [] - Дополнительные данные для использования при записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передаётся строка или массив с числовыми индексами, он будет обработан как ключscope. Дополнительную информацию о пространствах имен логгирования см. в Cake\Log\Log::config().
Возвращает
booleanУспех
resetsource public static
reset( )
Сбросить все подключенные логгеры. Это полезно при изменении конфигурации логгирования или во время тестирования, когда нужно сбросить внутреннее состояние класса Log.
Сбрасывает настроенные адаптеры логгирования, а также любые пользовательские уровни логгирования. Это также очистит данные конфигурации.
warningsource public static
warning( string $message , string|array $context [] )
Удобный метод для записи сообщений об ошибках
Параметры
- string
$message - сообщение лога
- string|array
$contextoptional [] - Дополнительные данные для использования при записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передаётся строка или массив с числовыми индексами, он будет обработан как ключscope. Дополнительную информацию о пространствах имен логгирования см. в Cake\Log\Log::config().
Возвращает
booleanУспех
writesource 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, сообщение не было обработано.
Параметры
- integer|string
$level - Уровень серьёзности сообщения, записываемого. Значение должно быть целым числом или строкой, соответствующей известному уровню.
- mixed
$message - Содержимое сообщения для записи в лог
- string|array
$contextoptional [] - Дополнительные данные для использования при записи сообщения. Специальный ключ
scopeможет быть передан для дальнейшей фильтрации используемых лог-движков. Если передаётся строка или массив с числовыми индексами, он будет обработан как ключscope. Дополнительную информацию о пространствах имен логгирования см. в Cake\Log\Log::config().
Возвращает
booleanУспех
Использует
InvalidArgumentExceptionЕсли передан недопустимый уровень.
Методы, используемые из Cake\Core\StaticConfigTrait
_configsource protected static
_config( string|array $key , array $config null )
Этот метод можно использовать для определения конфигурационных адаптеров для приложения или чтения существующей конфигурации.
Чтобы изменить конфигурацию адаптера во время выполнения, сначала удалите адаптер, а затем переконфигурируйте его.
Адаптеры не будут созданы до первого выполнения операции.
Использование
Предполагая, что имя класса — Cache, поддерживаются следующие сценарии:
Чтение конфигурационных данных обратно:
Cache::config('default');
Настройка кеш-движка.
Cache::config('default', $settings);
Вставка созданного адаптера:
Cache::config('default', $instance);
Настройка нескольких адаптеров одновременно:
Cache::config($arrayOfConfig);
Параметры
- string|array
$key - Имя конфигурации или массив нескольких конфигураций.
- array
$configoptional null - Массив данных конфигурации с именами адаптеров.
Возвращает
array|nullNull при добавлении конфигурации или массив данных конфигурации при чтении.
Использует
BadMethodCallExceptionПри попытке изменить существующую конфигурацию.
configuredsource public static
configured( )
Возвращает массив, содержащий настроенные конфигурации
Возвращает
arrayМассив конфигураций.
dropsource public static
drop( string $config )
Удаляет созданный адаптер.
Если вы хотите изменить существующую конфигурацию, удалите её, измените конфигурацию и снова добавьте её.
Если реализуемые объекты поддерживают объект $_registry, настроенная конфигурация также будет загружена из реестра.
Параметры
- string
$config - Существующая конфигурация, которую нужно удалить.
Возвращает
booleanРезультат удаления, возвращает false, если конфигурация не существует.
dsnClassMapsource public static
dsnClassMap( array $map null )
Возвращает или обновляет карту классов DSN для этого класса
Параметры
- array
$mapoptional null - Дополнения/изменения в карте классов, которые необходимо применить
Возвращает
arrayмассив
parseDsnsource 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Если не передана строка
Краткое описание свойств
Свойства, используемые из Cake\Core\StaticConfigTrait
© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.Log.Log.html