Класс Log
Записывает сообщения в настроенные адаптеры логов. Один или несколько адаптеров можно настроить, используя методы Cake Logs. Если вы не настроите никаких адаптеров и запишете в 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
Унаследованные свойства
Краткое описание методов
- Инициализирует реестр и конфигурации
-
Загружает определённую конфигурацию и создаёт все определённые адаптеры логирования.
- Метод-обёртка для записи сообщений об оповещениях
-
Этот метод может использоваться для определения адаптеров логирования для приложения или чтения существующей конфигурации.
- Метод-обёртка для записи критических сообщений
- Метод-обёртка для записи отладочных сообщений
- Метод-обёртка для записи сообщений об чрезвычайных ситуациях
- Получить движок логирования.
- Метод-обёртка для записи сообщений об ошибках
- Метод-обёртка для записи информационных сообщений
- Получить уровни логирования
- Метод-обёртка для записи сообщений о заметках
-
Сбросить все подключённые логгеры. Это полезно при изменении конфигурации логирования или во время тестирования, когда необходимо сбросить внутреннее состояние класса 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::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=> 'emergency', -
LOG_ALERT=> 'alert', -
LOG_CRIT=> 'critical', -
LOG_ERR=> 'error', -
LOG_WARNING=> 'warning', -
LOG_NOTICE=> 'notice', -
LOG_INFO=> 'info', -
LOG_DEBUG=> '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, имя конфигурации также будет выгружено из реестра.
Параметры
- string
$config - Существующая конфигурация, которую вы хотите удалить.
Возвращаемое значение
booleanРезультат удаления, возвращает false, когда конфигурация не существует.
dsnClassMap()source public static
dsnClassMap( array $map null )
Возвращает или обновляет карту классов DSN для данного класса
Параметры
- array
$mapнеобязательно null - Добавления/изменения в карту классов для применения
Возвращаемое значение
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Если не передана строка
Подробное описание свойств
$_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 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 array
Обрабатываемые уровни журнала
[
'emergency',
'alert',
'critical',
'error',
'warning',
'notice',
'info',
'debug'
]
© 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.2/class-Cake.Log.Log.html