Laďěnka a logování

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ATom
Člen | 16
+
0
-

Narazil jsem na dva nedostatky logování chyb.

Především, je velká škoda, že nejde zapnout logování i na vývojovém prostředí. S tím, že by se kromě zobrazení chyby ještě zalogovala, pokud Debug::enable() zdám log, měla by se logovat prostě vždy, nebo to vynutit něčím dalším. Často komunikuju třeba s flashem nebo z něčím dalším, co chybovou hlášku spolkne a musím kvůli tomu přepínat na produkční prostředí a pak zase zpátky abych viděl chyby na stránkách.

Pak by to taky chtělo mít možnost zalogovat vyjímu i když ji odchytím. Na produknčím prostředí není dobré nechat bílou stránku, ke které dojde po vzniku výjimky. Výjimku zachytím co nejblíže zdroji a odpadne pouze část webu, třeba jedna komponenta, jenže jak se pak dozvím, že k chybě došlo? Potřeboval bych tuto výjimku zalogovat jako kdybych nic nezachytil, tedy v catch bloku zavolat něco, co vygeneruje úplně stejný html soubor s popisem chyby, jako kdybych nic nezachytil.

_Martin_
Generous Backer | 679
+
0
-

ATom napsal(a):

Pak by to taky chtělo mít možnost zalogovat vyjímu i když ji odchytím. Na produknčím prostředí není dobré nechat bílou stránku, ke které dojde po vzniku výjimky. Výjimku zachytím co nejblíže zdroji a odpadne pouze část webu, třeba jedna komponenta, jenže jak se pak dozvím, že k chybě došlo? Potřeboval bych tuto výjimku zalogovat jako kdybych nic nezachytil, tedy v catch bloku zavolat něco, co vygeneruje úplně stejný html soubor s popisem chyby, jako kdybych nic nezachytil.

Tedy v catch bloku zavolej metodu zvanou Debug::processException($exception); a problém tvůj bude záhy vyřešen.

David Grudl
Nette Core | 8218
+
0
-

ATom napsal(a):

Často komunikuju třeba s flashem nebo z něčím dalším, co chybovou hlášku spolkne a musím kvůli tomu přepínat na produkční prostředí a pak zase zpátky abych viděl chyby na stránkách.

Nešlo by tady využít FirePHP a nechat si chyby logovat do konzole Firebugu?

Pak by to taky chtělo mít možnost zalogovat vyjímu i když ji odchytím.

Jak psal Martin, od toho je metoda Debug::processException() nebo PHP funkce trigger_error().

ATom
Člen | 16
+
0
-

David Grudl napsal(a):
Nešlo by tady využít FirePHP a nechat si chyby logovat do konzole Firebugu?

Myslím, že nešlo. Firebug neodchytí komunikaci s flashem. Myslím. Ale může jít i aplikaci třetí strany, třeba nějaký tlustý klient. Prostě mít možnost zvlášť povolit logování i na vývojovém prostředí by bylo super.

Jinak díky oběma za processException();

Editoval ATom (17. 7. 2009 12:24)