Конфигурация Tracy
В следующих примерах предполагается, что определён такой псевдоним класса:
use Tracy\Debugger;
Логирование ошибок
$logger = Debugger::getLogger();
// адрес или адреса, на которые отправлять уведомления об ошибках
$logger->email = 'dev@example.com'; // (string|string[]) по умолчанию не задано
// отправитель письма
$logger->fromEmail = 'me@example.com'; // (string) по умолчанию не задано
// процедура отправки письма
$logger->mailer = /* ... */; // (callable) по умолчанию отправка через mail()
// минимальный интервал между отправками следующих писем
$logger->emailSnooze = /* ... */; // (string) по умолчанию '2 days'
// для каких уровней ошибок логируется ещё и BlueScreen?
Debugger::$logSeverity = E_WARNING | E_NOTICE; // по умолчанию 0 (ни один уровень)
Поведение dump()
// максимальная длина строки
Debugger::$maxLength = 150; // (int) по умолчанию согласно версии Tracy
// максимальная глубина вложенности
Debugger::$maxDepth = 10; // (int) по умолчанию согласно версии Tracy
// максимальное количество показываемых элементов массива или объекта
Debugger::$maxItems = 100; // (int) по умолчанию согласно версии Tracy
// скрывать значения этих ключей (начиная с Tracy 2.8)
Debugger::$keysToHide = ['password', /* ... */]; // (string[]) по умолчанию []
// визуальная тема (начиная с Tracy 2.8)
Debugger::$dumpTheme = 'dark'; // (light|dark) по умолчанию 'light'
// показывать место, откуда был вызван dump()?
Debugger::$showLocation = /* ... */; // (bool) по умолчанию согласно версии Tracy
Прочее
// в режиме разработки показывать ошибки уровня notice или warning как BlueScreen
Debugger::$strictMode = /* ... */; // (bool|int) по умолчанию false, можно выбрать конкретные уровни ошибок (например, E_USER_DEPRECATED | E_DEPRECATED)
// показывать подавленные (@) сообщения об ошибках?
Debugger::$scream = /* ... */; // (bool|int) по умолчанию false, начиная с версии 2.9 можно выбрать конкретные уровни ошибок (например, E_USER_DEPRECATED | E_DEPRECATED)
// формат ссылки для открытия в редакторе
Debugger::$editor = /* ... */; // (string|null) по умолчанию 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'
// путь к шаблону с собственной страницей ошибки 500
Debugger::$errorTemplate = /* ... */; // (string) по умолчанию не задано
// показывать Tracy Bar?
Debugger::$showBar = /* ... */; // (bool) по умолчанию true
// команда открытия браузера с записанным в лог BlueScreen (например, в CLI)
Debugger::$browser = /* ... */; // (string) по умолчанию не задано
// массив функций, вызываемых после фатальной ошибки или неперехваченного исключения
Debugger::$onFatalError[] = function (Throwable $e) { /* ... */ };
Debugger::$editorMapping = [
// исходный => новый
'/var/www/html' => '/data/web',
'/home/web' => '/srv/html',
];
Nette Framework
Если вы используете Nette Framework, настраивать Tracy и добавлять новые панели в Tracy Bar можно через конфигурационный файл. В конфигурации можно задать параметры и добавить новые панели в Tracy Bar. Эти настройки применяются только после создания DI-контейнера, поэтому ошибки, возникшие раньше, их учесть не могут.
Настройка логирования ошибок:
tracy:
# адрес или адреса, на которые отправлять уведомления об ошибках
email: dev@example.com # (string|string[]) по умолчанию не задано
# отправитель письма
fromEmail: robot@example.com # (string) по умолчанию не задано
# время задержки между отправками писем (начиная с Tracy 2.8.8)
emailSnooze: ... # (string) по умолчанию '2 days'
# использовать для отправки писем mailer из Nette? (начиная с Tracy 2.5)
netteMailer: ... # (bool) по умолчанию true
# для каких уровней ошибок логируется ещё и BlueScreen?
logSeverity: [E_WARNING, E_NOTICE] # по умолчанию 0
Настройка функции dump():
tracy:
# максимальная длина строки
maxLength: 150 # (int) по умолчанию согласно версии Tracy
# максимальная глубина вложенности
maxDepth: 10 # (int) по умолчанию согласно версии Tracy
# максимальное количество показываемых элементов массива или объекта
maxItems: 100 # (int) по умолчанию согласно версии Tracy
# скрывать значения этих ключей (начиная с Tracy 2.8)
keysToHide: [password, pass] # (string[]) по умолчанию []
# визуальная тема (начиная с Tracy 2.8)
dumpTheme: dark # (light|dark) по умолчанию 'light'
# показывать место, откуда был вызван dump()?
showLocation: ... # (bool) по умолчанию согласно версии Tracy
Установка расширений Tracy:
tracy:
# добавляет панели в Tracy Bar
bar:
- Nette\Bridges\DITracy\ContainerPanel
- IncludePanel
- XDebugHelper('myIdeKey')
- MyPanel(@MyService)
# добавляет панели в BlueScreen
blueScreen:
- DoctrinePanel::renderException
Прочие параметры:
tracy:
# в режиме разработки показывать ошибки уровня notice или warning как BlueScreen
strictMode: ... # по умолчанию false
# показывать подавленные (@) сообщения об ошибках?
scream: ... # по умолчанию false
# формат ссылки для открытия в редакторе
editor: ... # (string) по умолчанию 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'
# путь к шаблону с собственной страницей ошибки 500
errorTemplate: ... # (string) по умолчанию не задано
# показывать Tracy Bar?
showBar: ... # (bool) по умолчанию true
# команда открытия браузера с записанным в лог BlueScreen (например, в CLI)
browser: ... # (string) по умолчанию не задано
editorMapping:
# исходный: новый
/var/www/html: /data/web
/home/web: /srv/html
Значения параметров logSeverity, strictMode и scream можно
записать массивом уровней ошибок (например, [E_WARNING, E_NOTICE]) или
выражением, применяемым в PHP (например, E_ALL & ~E_NOTICE).
Сервисы DI
Эти сервисы добавляются в DI-контейнер:
| Имя | Тип | Описание |
|---|---|---|
tracy.logger |
Tracy\ILogger | логгер |
tracy.blueScreen |
Tracy\BlueScreen | BlueScreen |
tracy.bar |
Tracy\Bar | Tracy Bar |