Spec-Zone.ru › CakePHP 3.8

Класс Log

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

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

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

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

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

Адаптеры логов должны реализовывать 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
    Метод для удобства записи сообщений об уведомлениях
  • 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 = [] )

Метод для удобства записи сообщений об уведомлениях

Параметры

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

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

Возвращаемое значение

boolean
Успех

critical()source public static

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

Метод для удобства записи критических сообщений

Параметры

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

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

Возвращаемое значение

boolean
Успех

debug()source public static

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

Метод для удобства записи сообщений отладки

Параметры

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

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

Возвращаемое значение

boolean
Успех

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

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

Запись сообщения 'warning' в журналы:

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( )

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

Возвращает

string[]
Массив конфигураций.

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
Имя конфигурации.

Возвращает

mixed
Данные конфигурации по указанному ключу или 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.8/class-Cake.Log.Log.html

Spec-Zone.ru

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