Configuração do Tracy

Todos os exemplos pressupõem a criação de um alias:

use Tracy\Debugger;

Registro de erros

$logger = Debugger::getLogger();

// e-mail para o qual as notificações de erro são enviadas
$logger->email = 'dev@example.com';      // (string|string[]) padrão é não definido

// remetente do e-mail
$logger->fromEmail = 'me@example.com';   // (string) padrão é não definido

// rotina que garante o envio do e-mail
$logger->mailer = /* ... */;             // (callable) padrão é enviar usando a função mail()

// após qual período mínimo enviar outro e-mail?
$logger->emailSnooze = /* ... */;        // (string) padrão é '2 days'

// para quais níveis de erro o BlueScreen também é registrado?
Debugger::$logSeverity = E_WARNING | E_NOTICE;  // padrão é 0 (nenhum nível de erro)

Comportamento do dump()

// comprimento máximo da string
Debugger::$maxLength = 150;              // (int) padrão depende da versão do Tracy

// profundidade máxima de aninhamento
Debugger::$maxDepth = 10;                // (int) padrão depende da versão do Tracy

// ocultar valores destas chaves (desde Tracy 2.8)
Debugger::$keysToHide = ['password', /* ... */];  // (string[]) padrão é []

// tema visual (desde Tracy 2.8)
Debugger::$dumpTheme = 'dark';           // (light|dark) padrão é 'light'

// mostrar o local onde a função dump() foi chamada?
Debugger::$showLocation = /* ... */;     // (bool) padrão depende da versão do Tracy

Outros

// no modo de desenvolvimento, exibe erros do tipo notice ou warning como BlueScreen
Debugger::$strictMode = /* ... */;       // (bool|int) padrão é false, é possível selecionar apenas alguns níveis de erro (ex: E_USER_DEPRECATED | E_DEPRECATED)

// mostrar mensagens de erro silenciadas (@)?
Debugger::$scream = /* ... */;           // (bool|int) padrão é false, desde a versão 2.9 é possível selecionar apenas alguns níveis de erro (ex: E_USER_DEPRECATED | E_DEPRECATED)

// formato do link para abrir no editor
Debugger::$editor = /* ... */;           // (string|null) padrão é 'editor://open/?file=%file&line=%line'

// caminho para o template com a página personalizada para o erro 500
Debugger::$errorTemplate = /* ... */;    // (string) padrão é não definido

// mostrar a Tracy Bar?
Debugger::$showBar = /* ... */;          // (bool) padrão é true

Debugger::$editorMapping = [
	// original => novo
	'/var/www/html' => '/data/web',
	'/home/web' => '/srv/html',
];

Nette Framework

Se você estiver usando o Nette Framework, pode configurar o Tracy e adicionar novos painéis à Tracy Bar também através do arquivo de configuração. Na configuração, é possível definir parâmetros e também adicionar novos painéis à Tracy Bar. Essas configurações são aplicadas somente após a criação do contêiner de DI, portanto, erros ocorridos antes disso não podem refleti-las.

Configuração do registro de erros:

tracy:
	# e-mail para o qual as notificações de erro são enviadas
	email: dev@example.com           # (string|string[]) padrão é não definido

	# remetente do e-mail
	fromEmail: robot@example.com     # (string) padrão é não definido

	# período de adiamento do envio de e-mails (desde Tracy 2.8.8)
	emailSnooze: ...                 # (string) padrão é '2 days'

	# usar o Nette mailer para enviar e-mails? (desde Tracy 2.5)
	netteMailer: ...                 # (bool) padrão é true

	# para quais níveis de erro o BlueScreen também é registrado?
	logSeverity: [E_WARNING, E_NOTICE]  # padrão é []

Configuração do comportamento da função dump():

tracy:
	# comprimento máximo da string
	maxLength: 150                # (int) padrão depende da versão do Tracy

	# profundidade máxima de aninhamento
	maxDepth: 10                  # (int) padrão depende da versão do Tracy

	# ocultar valores destas chaves (desde Tracy 2.8)
	keysToHide: [password, pass]  # (string[]) padrão é []

	# tema visual (desde Tracy 2.8)
	dumpTheme: dark               # (light|dark) padrão é 'light'

	# mostrar o local onde a função dump() foi chamada?
	showLocation: ...             # (bool) padrão depende da versão do Tracy

Instalação de extensões do Tracy:

tracy:
	# adiciona painéis à Tracy Bar
	bar:
		- Nette\Bridges\DITracy\ContainerPanel
		- IncludePanel
		- XDebugHelper('myIdeKey')
		- MyPanel(@MyService)

	# adiciona painéis ao BlueScreen
	blueScreen:
		- DoctrinePanel::renderException

Outras opções:

tracy:
	# no modo de desenvolvimento, exibe erros do tipo notice ou warning como BlueScreen
	strictMode: ...           # padrão é true

	# mostrar mensagens de erro silenciadas (@)?
	scream: ...               # padrão é false

	# formato do link para abrir no editor
	editor: ...               # (string) padrão é 'editor://open/?file=%file&line=%line'

	# caminho para o template com a página personalizada para o erro 500
	errorTemplate: ...        # (string) padrão é não definido

	# mostrar a Tracy Bar?
	showBar: ...              # (bool) padrão é true

	editorMapping:
		# original: novo
		/var/www/html: /data/web
		/home/web: /srv/html

Os valores das opções logSeverity, strictMode e scream podem ser escritos como um array de níveis de erro (ex: [E_WARNING, E_NOTICE]), ou como uma expressão usada na linguagem PHP (ex: E_ALL & ~E_NOTICE).

Serviços de DI

Estes serviços são adicionados ao contêiner de DI:

Nome Tipo Descrição
tracy.logger Tracy\ILogger logger
tracy.blueScreen Tracy\BlueScreen BlueScreen
tracy.bar Tracy\Bar Tracy Bar