Spec-Zone.ru › CakePHP 3.1

Класс 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
Пространство имён: Cake\Log
Расположение: Log/Log.php

Подробное описание метода

_initsource protected static

_init( )

Инициализирует реестр и конфигурации

_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|null
Null при добавлении конфигурации и массив данных конфигурации при чтении.

Выбрасывает

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
Успех
END_OF_DOCUMENT_MARKER

levelssource public static

levels( )

Получает уровни логов

Вызовите этот метод, чтобы получить текущую конфигурацию уровня.

Возвращает

array
активные уровни логов

noticesource public static

notice( string $message , string|array $context [] )

Удобный метод для записи сообщений о событиях

Параметры

string $message
сообщение лога
string|array $context optional []
Дополнительные данные для использования при записи сообщения. Специальный ключ 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 $context optional []
Дополнительные данные для использования при записи сообщения. Специальный ключ 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 $context optional []
Дополнительные данные для использования при записи сообщения. Специальный ключ 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 $config optional null
Массив данных конфигурации с именами адаптеров.

Возвращает

array|null
Null при добавлении конфигурации или массив данных конфигурации при чтении.

Использует

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 $map optional 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
Если не передана строка

Краткое описание свойств

$_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'
]

$_registrysource

protected static Cake\Log\LogEngineRegistry

Класс LogEngineRegistry

Свойства, используемые из Cake\Core\StaticConfigTrait

$_configsource

protected static array

Наборы конфигурации.

[]

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API