Spec-Zone.ru › CakePHP 3.4

Класс 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 необязательно []

Дополнительные данные, используемые для записи сообщения. Специальный ключ 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
Успех
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

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 необязательно 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

dsnClassMap( array $map null )

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

Устарело

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

Параметры

array $map необязательно 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–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.4/class-Cake.Log.Log.html

Spec-Zone.ru

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