Spec-Zone.ru › CakePHP 3.3

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

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

  • $_dirtyConfig protected static
    boolean
    Внутренний флаг для отслеживания изменений конфигурации.
  • $_dsnClassMap protected static
    array
    Массив, сопоставляющий схемы URL с полными именами классов движка Log.
  • $_levelMap protected static
    array

    Уровни логов, как подробно описано в RFC 5424 http://tools.ietf.org/html/rfc5424

  • $_levels protected static
    array
    Обрабатываемые уровни логов
  • $_registry protected static
    Cake\Log\LogEngineRegistry
    Класс LogEngineRegistry

Наследованные свойства

  • _config

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

  • _init() protected static
    Инициализирует реестр и конфигурации
  • _loadConfig() protected static

    Загружает определённую конфигурацию и создаёт все определённые адаптеры логгирования.

  • alert() public static
    Метод-обёртка для записи сообщений об alert
  • config() public static

    Этот метод можно использовать для определения адаптеров логгирования для приложения или чтения существующей конфигурации.

  • critical() public static
    Метод-обёртка для записи сообщений о критических ошибках
  • debug() public static
    Метод-обёртка для записи отладочных сообщений
  • emergency() public static
    Метод-обёртка для записи сообщений о критических ошибках
  • engine() public static
    Получить движок логгирования.
  • error() public static
    Метод-обёртка для записи сообщений об ошибках
  • info() public static
    Метод-обёртка для записи информационных сообщений
  • levels() public static
    Получить уровни логов
  • notice() public static
    Метод-обёртка для записи сообщений о важных событиях
  • reset() public static

    Сбросить все подключенные логгеры. Это полезно при изменении конфигурации логгирования или во время тестирования, когда необходимо сбросить внутреннее состояние класса Log.

  • warning() public static
    Метод-обёртка для записи предупреждающих сообщений
  • write() public static

    Записывает заданное сообщение и тип во все настроенные адаптеры логов. Настроенные адаптеры получают как $level, так и $message. $level — это одна из следующих строк/значений.

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

_init()source protected static

_init( )

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

_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
Массив пар имя => данные конфигурации адаптера.

Возвращает

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

Исключения

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

$_registrysource

protected static Cake\Log\LogEngineRegistry

Класс LogEngineRegistry

© 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

Spec-Zone.ru

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