Spec-Zone.ru › CakePHP 3.6

Класс Log

Записывает сообщения в настроенные адаптеры Log. Один или несколько адаптеров можно настроить, используя методы Cake Logs. Если вы не настраиваете адаптеры и записываете в Log, сообщения будут проигнорированы.

Настройка адаптеров Log

Вы можете настроить адаптеры логов в файле вашей config/app.php. Пример конфигурации:

Log::setConfig('my_log', ['className' => 'FileLog']);

Вы можете определить className как любое полностью квалифицированное имя класса или использовать сокращенное имя класса для использования логгеров в пространствах имен App\Log\Engine и Cake\Log\Engine. Вы также можете использовать сокращенное имя плагина для использования классов логирования, предоставляемых плагинами.

Адаптеры Log должны реализовывать Psr\Log\LoggerInterface, и существует встроенный базовый класс (Cake\Log\Engine\BaseLog), который можно использовать для пользовательских логгеров.

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

Уровни логирования

При настройке логгеров можно задать уровни, которые будет обрабатывать логгер. Например, это позволяет отключить отладочные сообщения в продакшене:

Log::setConfig('default', [
    'className' => 'File',
    'path' => LOGS,
    'levels' => ['error', 'critical', 'alert', 'emergency']
]);

Этот логгер будет регистрировать только сообщения об ошибках или более высокого уровня. Все другие сообщения логов будут отброшены.

Области логирования

При настройке логгеров можно определить активные области, для которых предназначен логгер. Если они определены, только указанные области будут обрабатываться логгером. Если вы не определяете области, адаптер будет обрабатывать все области, соответствующие обработанным уровням.

Log::setConfig('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 https://tools.ietf.org/html/rfc5424

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

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

  • _config

Резюме методов

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

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

  • alert() public static
    Удобный метод для записи сообщений об alert
  • 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.

  • setConfig() public static

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

  • 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 optional []

Дополнительные данные, используемые для записи сообщения в журнал. Специальный ключ scope может быть передан для дальнейшей фильтрации используемых движков лога. Если передана строка или массив с числовыми индексами, он будет обработан как ключ scope. Дополнительная информация о областях логирования см. в Cake\Log\Log::setConfig().

Возвращает

boolean
Успех

critical()source public static

critical( string $message , string|array $context = [] )

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

Параметры

строка $message
сообщение лога
строка|массив $context optional []

Дополнительные данные, используемые для записи сообщения в журнал. Специальный ключ scope может быть передан для дальнейшей фильтрации используемых движков лога. Если передана строка или массив с числовыми индексами, он будет обработан как ключ scope. Дополнительная информация о областях логирования см. в Cake\Log\Log::setConfig().

Возвращает

boolean
Успех

debug()source public static

debug( string $message , string|array $context = [] )

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

Параметры

строка $message
сообщение лога
строка|массив $context optional []

Дополнительные данные, используемые для записи сообщения в журнал. Специальный ключ scope может быть передан для дальнейшей фильтрации используемых движков лога. Если передана строка или массив с числовыми индексами, он будет обработан как ключ scope. Дополнительная информация о областях логирования см. в Cake\Log\Log::setConfig().

Возвращает

boolean
Успех
END_OF_DOCUMENT_MARKER

emergency()source public static

emergency( string $message , string|array $context = [] )

Удобный метод для записи сообщений об экстренных ситуациях в журнал

Параметры

строка $message
сообщение журнала
строка|массив $context необязательно []

Дополнительные данные, используемые для записи сообщения в журнал. Специальный ключ scope может быть передан для дальнейшей фильтрации используемых движков журнала. Если передана строка или массивы с числовыми индексами, она будет обработана как ключ scope. Дополнительная информация о разделах ведения журнала см. в Cake\Log\Log::setConfig().

Возвращает

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::setConfig().

Возвращает

boolean
Успех

info()source public static

info( string $message , string|array $context = [] )

Удобный метод для записи информационных сообщений в журнал

Параметры

строка $message
сообщение журнала
строка|массив $context необязательно []

Дополнительные данные, используемые для записи сообщения в журнал. Специальный ключ scope может быть передан для дальнейшей фильтрации используемых движков журнала. Если передана строка или массивы с числовыми индексами, она будет обработана как ключ scope. Дополнительная информация о разделах ведения журнала см. в Cake\Log\Log::setConfig().

Возвращает

boolean
Успех

levels()source public static

levels( )

Получить уровни журнала

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

Возвращает

массив
активные уровни журнала

notice()source public static

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

Удобный метод для записи сообщений о заметках в журнал

Параметры

строка $message
сообщение журнала
строка|массив $context необязательно []

Дополнительные данные, используемые для записи сообщения в журнал. Специальный ключ scope может быть передан для дальнейшей фильтрации используемых движков журнала. Если передана строка или массивы с числовыми индексами, она будет обработана как ключ scope. Дополнительная информация о разделах ведения журнала см. в Cake\Log\Log::setConfig().

Возвращает

boolean
Успех

reset()source public static

reset( )

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

Сбрасывает настроенные адаптеры ведения журнала, а также любые пользовательские уровни ведения журнала. Также очищаются данные конфигурации.

setConfig()source public static

setConfig( string|array $key , array|null $config = null )

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

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

Логгеры не будут созданы до записи первого сообщения журнала.

Использование

Настройка движка кеша.

Log::setConfig('default', $settings);

Вставка созданного адаптера:

Log::setConfig('default', $instance);

Использование фабричной функции для получения адаптера:

Log::setConfig('default', function () { return new FileLog(); });

Настройка нескольких адаптеров одновременно:

Log::setConfig($arrayOfConfig);

Параметры

строка|массив $key
Имя конфигурации логгера или массив из нескольких конфигураций.
массив|null $config необязательно null
Массив пар имя => данные конфигурации для адаптера.

Исключения

BadMethodCallException
При попытке изменить существующую конфигурацию.

warning()source public static

warning( string $message , string|array $context = [] )

Удобный метод для записи предупреждающих сообщений в журнал

Параметры

строка $message
сообщение журнала
строка|массив $context необязательно []

Дополнительные данные, используемые для записи сообщения в журнал. Специальный ключ scope может быть передан для дальнейшей фильтрации используемых движков журнала. Если передана строка или массивы с числовыми индексами, она будет обработана как ключ scope. Дополнительная информация о разделах ведения журнала см. в Cake\Log\Log::setConfig().

Возвращает

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::setConfig().

Возвращает

boolean
Успех

Исключения

InvalidArgumentException
Если передан недопустимый уровень.

Методы, используемые из Cake\Core\StaticConfigTrait

config()source public static deprecated

config( string|array $key , array|null $config = null )

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

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

Адаптеры не будут созданы, пока не будет выполнено первое действие.

Использование

Предполагая, что имя класса — Cache, поддерживаются следующие сценарии:

Чтение данных конфигурации обратно:

Cache::config('default');

Настройка движка кэша.

Cache::config('default', $settings);

Вставка сконструированного адаптера:

Cache::config('default', $instance);

Настройка нескольких адаптеров одновременно:

Cache::config($arrayOfConfig);

Устарело

3.4.0 Используйте setConfig()/getConfig() вместо этого.

Параметры

string|array $key
Имя конфигурации или массив нескольких конфигураций.
array|null $config optional null
Массив с именем и данными конфигурации для адаптера.

Возвращает

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

Выбрасывает

BadMethodCallException
При попытке изменения существующей конфигурации.

configured()source public static

configured( )

Возвращает массив, содержащий указанные конфигурации.

Возвращает

array
Массив конфигураций.

drop()source public static

drop( string $config )

Удаляет сконструированный адаптер.

Если вы хотите изменить существующую конфигурацию, необходимо удалить её, изменить конфигурацию, а затем добавить её заново.

Если реализуемые объекты поддерживают $_registry объект, указанная конфигурация также будет загружена из реестра.

Параметры

string $config
Существующая конфигурация, которую вы хотите удалить.

Возвращает

boolean
Успешность удаления. Возвращает false, если конфигурация не существует.

dsnClassMap()source public static deprecated

dsnClassMap( array $map = null )

Возвращает или обновляет карту классов DSN для данного класса.

Устарело

3.4.0 Используйте setDsnClassMap()/getDsnClassMap() вместо этого.

Параметры

array $map optional null
Добавления/изменения в карту классов для применения.

Возвращает

array

getConfig()source public static

getConfig( string $key )

Считывает существующую конфигурацию.

Параметры

string $key
Имя конфигурации.

Возвращает

array|null
Массив данных конфигурации.

getDsnClassMap()source public static

getDsnClassMap( )

Возвращает карту классов DSN для данного класса.

Возвращает

array

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, если не указано иное.

Обратите внимание, что аргументы строки запроса также анализируются и устанавливаются как значения в возвращаемой конфигурации.

Параметры

string $dsn
Строка DSN, которая должна быть преобразована в массив конфигурации.

Возвращает

array
Массив конфигурации для хранения после анализа DSN

Выбрасывает

InvalidArgumentException
Если в качестве аргумента не переданная строка или переданная строка некорректна.

setDsnClassMap()source public static

setDsnClassMap( array $map )

Обновляет карту классов DSN для этого класса.

Параметры

array $map
Добавления/изменения в карту классов для применения.

Подробности свойств

$_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 https://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|null

Класс LogEngineRegistry.

© 2005–present 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.6/class-Cake.Log.Log.html

Spec-Zone.ru

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