From c2b8c09cb74bf0137fc0b9fefb3fa14295a0ea60 Mon Sep 17 00:00:00 2001 From: David Grudl Date: Sat, 4 Feb 2023 03:16:09 +0100 Subject: [PATCH] tracy: removed info about FireLogger --- tracy/cs/@left-menu.texy | 1 - tracy/cs/firelogger.texy | 27 --------------------------- tracy/cs/guide.texy | 2 +- tracy/en/@left-menu.texy | 1 - tracy/en/firelogger.texy | 27 --------------------------- tracy/en/guide.texy | 2 +- tracy/files/tracy-firelogger.webp | Bin 34718 -> 0 bytes 7 files changed, 2 insertions(+), 58 deletions(-) delete mode 100644 tracy/cs/firelogger.texy delete mode 100644 tracy/en/firelogger.texy delete mode 100644 tracy/files/tracy-firelogger.webp diff --git a/tracy/cs/@left-menu.texy b/tracy/cs/@left-menu.texy index ba170817d1..20fdd821f0 100644 --- a/tracy/cs/@left-menu.texy +++ b/tracy/cs/@left-menu.texy @@ -1,7 +1,6 @@ - [Začínáme s Tracy |guide] - [Dumpování |dumper] - [Měření času |stopwatch] -- [FireLogger] - [Konfigurace |configuring] - [Návody |recipes] - [Integrace s IDE |open-files-in-ide] diff --git a/tracy/cs/firelogger.texy b/tracy/cs/firelogger.texy deleted file mode 100644 index 152e9648a6..0000000000 --- a/tracy/cs/firelogger.texy +++ /dev/null @@ -1,27 +0,0 @@ -FireLogger -********** - -Ne vždy lze ladící informace posílat do okna prohlížeče. Týká se to AJAXových požadavků, generování XML výstupu či obrázků. V takovém případě můžeme zasílat zprávy samostatným kanálem do FireLoggeru. Chyby úrovně Notice a Warning jsou do okna FireLoggeru dokonce zasílány automaticky. Taktéž je možné logovat výjimky, které sice aplikace zachytila, ale stojí za to na ně upozornit. - -Jak na to? - -- nainstalujte si rozšíření [FireLogger for Chrome |https://chrome.google.com/webstore/detail/firelogger-for-chrome/hmagilfopmdjkeomnjpchokglfdfjfeh] -- zapněte Chrome DevTools (klávesou Ctrl-Shift-I) a otevřete Konzoli - -Otevřete si [demo stránku |https://examples.nette.org/tracy/] a ve FireLoggeru uvidíte zprávy odeslané z PHP. - -Protože Tracy komunikuje s Firebugem přes HTTP hlavičky, je nutné volat logovací funkce ještě před tím, než PHP skript cokoliv odešle na výstup. Také je možné zapnout [output buffering |https://www.php.net/manual/en/function.ob-start.php] a tím výstup oddálit. - -```php -use Tracy\Debugger; - -Debugger::fireLog('Hello World'); // vypíšeme řetězec do konzoly FireLoggeru - -Debugger::fireLog($_SERVER); // do konzoly lze vypsat i pole nebo objekty - -Debugger::fireLog(new Exception('Test Exception')); // či dokonce výjimky -``` - -Výsledek vypadá asi takto: - -[* tracy-firelogger.webp .{url:-} *] diff --git a/tracy/cs/guide.texy b/tracy/cs/guide.texy index 34539fe603..62e94b7fb1 100644 --- a/tracy/cs/guide.texy +++ b/tracy/cs/guide.texy @@ -124,7 +124,7 @@ Jak vidíte, Laděnka je poměrně výřečná, což lze ocenit ve vývojovém p [* tracy-error2.webp .{url:-} *] -Produkční režim potlačí zobrazování všech ladících informacích, které posíláme ven pomocí [dump() |dumper] nebo [Debugger::fireLog() |FireLogger], a samozřejmě také všech chybových zpráv, které generuje PHP. Pokud jste tedy v kódu zapomněli nějaké `dump($obj)`, nemusíte se obávat, na produkčním serveru se nic nevypíše. +Produkční režim potlačí zobrazování všech ladících informacích, které posíláme ven pomocí [dump() |dumper], a samozřejmě také všech chybových zpráv, které generuje PHP. Pokud jste tedy v kódu zapomněli nějaké `dump($obj)`, nemusíte se obávat, na produkčním serveru se nic nevypíše. K nastavování režimu se používá první parametr metody `Debugger::enable()`. Režim lze napevno nastavit konstantou `Debugger::PRODUCTION` nebo `Debugger::DEVELOPMENT`. Další možnost je, že bude vývojový režim zapnutý při přístupu z dané IP adresy s danou hodnotou `tracy-debug` cookie. Používá se syntaxe `hodnota-cookie@ip-adresa`. diff --git a/tracy/en/@left-menu.texy b/tracy/en/@left-menu.texy index 1a71dbd183..d99745017e 100644 --- a/tracy/en/@left-menu.texy +++ b/tracy/en/@left-menu.texy @@ -1,7 +1,6 @@ - [Getting Started |Guide] - [Dumper] - [Stopwatch] -- [FireLogger] - [Configuring] - [Recipes] - [IDE Integration |open-files-in-ide] diff --git a/tracy/en/firelogger.texy b/tracy/en/firelogger.texy deleted file mode 100644 index 3e8a95874a..0000000000 --- a/tracy/en/firelogger.texy +++ /dev/null @@ -1,27 +0,0 @@ -FireLogger -********** - -You cannot always send debugging information to the browser window. This applies to AJAX requests or generating XML files to output. In such cases, you can send the messages by a separate channel into FireLogger. Error, Notice and Warning levels are sent to FireLogger window automatically. It is also possible to log suppressed exceptions in running application when attention to them is important. - -How to do it? - -- install extension [FireLogger for Chrome |https://chrome.google.com/webstore/detail/firelogger-for-chrome/hmagilfopmdjkeomnjpchokglfdfjfeh] -- turn on Chrome DevTools (using Ctrl-Shift-I key) and open Console - -Navigate to the [demo page |https://examples.nette.org/tracy/] and you will see messages sent from PHP. - -Because Tracy\Debugger communicates with FireLogger via HTTP headers, you must call the logging function before the PHP script sends anything to output. It is also possible to enable output buffering and delay the output. - -```php -use Tracy\Debugger; - -Debugger::fireLog('Hello World'); // send string into FireLogger console - -Debugger::fireLog($_SERVER); // or even arrays and objects - -Debugger::fireLog(new Exception('Test Exception')); // or exceptions -``` - -The result looks like this: - -[* tracy-firelogger.webp .{url:-} *] diff --git a/tracy/en/guide.texy b/tracy/en/guide.texy index 6a3bff037b..0e38d33b67 100644 --- a/tracy/en/guide.texy +++ b/tracy/en/guide.texy @@ -120,7 +120,7 @@ As you can see, Tracy is quite eloquent. It is appreciated in a development envi [* tracy-error2.webp .{url:-} *] -Production output mode suppresses all debugging information which is sent out via [dump() |dumper] or [Debugger::fireLog() |FireLogger], and of course all error messages generated by PHP. So, even if you forget `dump($obj)` in the source code, you do not have to worry about it on your production server. Nothing will be seen. +Production output mode suppresses all debugging information which is sent out via [dump() |dumper], and of course all error messages generated by PHP. So, even if you forget `dump($obj)` in the source code, you do not have to worry about it on your production server. Nothing will be seen. The output mode is set by the first parameter of `Debugger::enable()`. You can specify either a constant `Debugger::PRODUCTION` or `Debugger::DEVELOPMENT`. Other option is to set it up in a way, that development mode will be on when the application is accessed from a defined IP address with a defined value of `tracy-debug` cookie. The syntax used to achieve this is `cookie-value@ip-address`. diff --git a/tracy/files/tracy-firelogger.webp b/tracy/files/tracy-firelogger.webp deleted file mode 100644 index 1ec8ed33df142db0cec873817b44b277f4281750..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34718 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 DU&Qn^