Konfiguration von Tracy

Die folgenden Beispiele setzen voraus, dass dieser Klassen-Alias definiert ist:

use Tracy\Debugger;

Fehlerprotokollierung

$logger = Debugger::getLogger();

// E-Mail-Adresse(n), an die Fehlerbenachrichtigungen gehen
$logger->email = 'dev@example.com';      // (string|string[]) standardmäßig nicht gesetzt

// Absender der E-Mail
$logger->fromEmail = 'me@example.com';   // (string) standardmäßig nicht gesetzt

// Routine zum Versenden der E-Mail
$logger->mailer = /* ... */;             // (callable) standardmäßig Versand per mail()

// Mindestabstand zum Versenden weiterer E-Mails
$logger->emailSnooze = /* ... */;        // (string) Standardwert ist '2 days'

// bei welchen Fehlerstufen wird auch ein BlueScreen protokolliert?
Debugger::$logSeverity = E_WARNING | E_NOTICE;  // Standardwert ist 0 (keine Fehlerstufe)

Verhalten von dump()

// maximale Länge von Strings
Debugger::$maxLength = 150;              // (int) Standardwert je nach Tracy-Version

// maximale Verschachtelungstiefe
Debugger::$maxDepth = 10;                // (int) Standardwert je nach Tracy-Version

// maximale Anzahl angezeigter Array-/Objektelemente
Debugger::$maxItems = 100;               // (int) Standardwert je nach Tracy-Version

// Werte dieser Schlüssel verbergen (seit Tracy 2.8)
Debugger::$keysToHide = ['password', /* ... */];  // (string[]) Standardwert ist []

// visuelles Theme (seit Tracy 2.8)
Debugger::$dumpTheme = 'dark';           // (light|dark) Standardwert ist 'light'

// die Stelle anzeigen, an der dump() aufgerufen wurde?
Debugger::$showLocation = /* ... */;     // (bool) Standardwert je nach Tracy-Version

Sonstiges

// im Entwicklungsmodus Fehler vom Typ notice oder warning als BlueScreen anzeigen
Debugger::$strictMode = /* ... */;       // (bool|int) Standardwert ist false, es lassen sich bestimmte Fehlerstufen wählen (z. B. E_USER_DEPRECATED | E_DEPRECATED)

// unterdrückte (@) Fehlermeldungen anzeigen?
Debugger::$scream = /* ... */;           // (bool|int) Standardwert ist false, seit Version 2.9 lassen sich bestimmte Fehlerstufen wählen (z. B. E_USER_DEPRECATED | E_DEPRECATED)

// Format des Links zum Öffnen im Editor
Debugger::$editor = /* ... */;           // (string|null) Standardwert ist 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'

// Pfad zum Template mit einer eigenen Seite für den Fehler 500
Debugger::$errorTemplate = /* ... */;    // (string) standardmäßig nicht gesetzt

// die Tracy Bar anzeigen?
Debugger::$showBar = /* ... */;          // (bool) Standardwert ist true

// Befehl zum Öffnen des Browsers mit dem protokollierten BlueScreen (z. B. in der CLI)
Debugger::$browser = /* ... */;          // (string) standardmäßig nicht gesetzt

// Array von Funktionen, die nach einem fatalen Fehler oder einer nicht abgefangenen Exception aufgerufen werden
Debugger::$onFatalError[] = function (Throwable $e) { /* ... */ };

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

Nette Framework

Wenn Sie das Nette Framework verwenden, können Sie Tracy über die Konfigurationsdatei konfigurieren und der Tracy Bar neue Panels hinzufügen. In der Konfiguration können Sie Parameter setzen und der Tracy Bar neue Panels hinzufügen. Diese Einstellungen greifen erst nach dem Erzeugen des DI-Containers, Fehler, die davor auftreten, können sie also nicht berücksichtigen.

Konfiguration der Fehlerprotokollierung:

tracy:
	# E-Mail-Adresse(n), an die Fehlerbenachrichtigungen gehen
	email: dev@example.com           # (string|string[]) standardmäßig nicht gesetzt

	# Absender der E-Mail
	fromEmail: robot@example.com     # (string) standardmäßig nicht gesetzt

	# Wartezeit für den E-Mail-Versand (seit Tracy 2.8.8)
	emailSnooze: ...                 # (string) Standardwert ist '2 days'

	# den Nette-Mailer zum Versenden der E-Mails verwenden? (seit Tracy 2.5)
	netteMailer: ...                 # (bool) Standardwert ist true

	# bei welchen Fehlerstufen wird auch ein BlueScreen protokolliert?
	logSeverity: [E_WARNING, E_NOTICE]  # Standardwert ist 0

Konfiguration für die Funktion dump():

tracy:
	# maximale Länge von Strings
	maxLength: 150                # (int) Standardwert je nach Tracy-Version

	# maximale Verschachtelungstiefe
	maxDepth: 10                  # (int) Standardwert je nach Tracy-Version

	# maximale Anzahl angezeigter Array-/Objektelemente
	maxItems: 100                 # (int) Standardwert je nach Tracy-Version

	# Werte dieser Schlüssel verbergen (seit Tracy 2.8)
	keysToHide: [password, pass]  # (string[]) Standardwert ist []

	# visuelles Theme (seit Tracy 2.8)
	dumpTheme: dark               # (light|dark) Standardwert ist 'light'

	# die Stelle anzeigen, an der dump() aufgerufen wurde?
	showLocation: ...             # (bool) Standardwert je nach Tracy-Version

Installation von Tracy-Extensions:

tracy:
	# fügt der Tracy Bar Panels hinzu
	bar:
		- Nette\Bridges\DITracy\ContainerPanel
		- IncludePanel
		- XDebugHelper('myIdeKey')
		- MyPanel(@MyService)

	# fügt dem BlueScreen Panels hinzu
	blueScreen:
		- DoctrinePanel::renderException

Weitere Optionen:

tracy:
	# im Entwicklungsmodus Fehler vom Typ notice oder warning als BlueScreen anzeigen
	strictMode: ...           # Standardwert ist false

	# unterdrückte (@) Fehlermeldungen anzeigen?
	scream: ...               # Standardwert ist false

	# Format des Links zum Öffnen im Editor
	editor: ...               # (string) Standardwert ist 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'

	# Pfad zum Template mit einer eigenen Seite für den Fehler 500
	errorTemplate: ...        # (string) standardmäßig nicht gesetzt

	# die Tracy Bar anzeigen?
	showBar: ...              # (bool) Standardwert ist true

	# Befehl zum Öffnen des Browsers mit dem protokollierten BlueScreen (z. B. in der CLI)
	browser: ...             # (string) standardmäßig nicht gesetzt

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

Die Werte der Optionen logSeverity, strictMode und scream lassen sich als Array von Fehlerstufen schreiben (z. B. [E_WARNING, E_NOTICE]) oder als Ausdruck, wie er in PHP verwendet wird (z. B. E_ALL & ~E_NOTICE).

DI-Services

Diese Services werden dem DI-Container hinzugefügt:

Name Typ Beschreibung
tracy.logger Tracy\ILogger Logger
tracy.blueScreen Tracy\BlueScreen BlueScreen
tracy.bar Tracy\Bar Tracy Bar