Spec-Zone.ru › CakePHP 3.2

Класс Log

Записывает сообщения в настроенные адаптеры логов. Один или несколько адаптеров можно настроить, используя методы Cake Logs. Если вы не настроите никаких адаптеров и запишете в 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
    Метод-обёртка для записи сообщений об оповещениях
  • 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 [] )

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

Параметры

строка $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
При попытке изменить существующую конфигурацию.
END_OF_DOCUMENT_MARKER

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 => '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::config() для получения дополнительной информации о разделах журнала.

Возвращает

boolean
Успешно

Использует

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

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

configured()source public static

configured( )

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

Возвращает

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

drop()source public static

drop( string $config )

Удаляет созданный адаптер.

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

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

Параметры

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

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

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

dsnClassMap()source public static

dsnClassMap( array $map null )

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

Параметры

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

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

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
Если не передана строка

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

$_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 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 array

Обрабатываемые уровни журнала

[
    'emergency',
    'alert',
    'critical',
    'error',
    'warning',
    'notice',
    'info',
    'debug'
]

$_registrysource

protected static Cake\Log\LogEngineRegistry

Класс LogEngineRegistry

© 2005–2016 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.
http://api.cakephp.org/3.2/class-Cake.Log.Log.html

Spec-Zone.ru

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