Spec-Zone.ru › CakePHP 3.5

Класс 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 с полными именами классов лог-движков.
  • $_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
Успех
END_OF_DOCUMENT_MARKER

emergency()source public static

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

Метод для удобного регистрации сообщений об аварийных ситуациях

Параметры

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

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

Возвращает

boolean
Успех

engine()source public static

engine( string $name )

Получить механизм регистрации.

Параметры

string $name
Имя ключа настроенного адаптера для получения.

Возвращает

Cake\Log\Engine\BaseLog|false
Экземпляр BaseLog или false, если не найден

error()source public static

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

Метод для удобного регистрации сообщений об ошибках

Параметры

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

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

Возвращает

boolean
Успех

info()source public static

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

Метод для удобного регистрации информационных сообщений

Параметры

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

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

Возвращает

boolean
Успех

levels()source public static

levels( )

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

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

Возвращает

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

notice()source public static

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

Метод для удобного регистрации информационных сообщений

Параметры

string $message
сообщение журнала
string|array $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);

Параметры

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

Выбрасывает

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

warning()source public static

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

Метод для удобного регистрации предупреждений

Параметры

string $message
сообщение журнала
string|array $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 => 'аварийный',
  • 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 необязательно []

Дополнительные данные для регистрации сообщения. Специальный ключ 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–2018 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.5/class-Cake.Log.Log.html

Spec-Zone.ru

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