Tracy – samostatné použití – modifikace?
- Kcko
- Člen | 468
Používám Tracy mimo Nette v projektu plném notice chyb (není možné to opravit v dohledné době).
Mám tam 2 menší problémy a chtěl jsem se zeptat jak je vyřešit.
- Při zavolání nesmyslného dotazu se mi správně vygeneruje soubor exception…html, do info.log se mi zapíše [2016–12–05 17–58–25] DibiDriverException: Table ‚49_sf.xyz‘ doesn't exist, ale web mi nespadne do červené smrti (nebo se tomu říká blue screen?), musím si vygenerovat error přes trigger_error, viz níže
<?php
dibi::query('SELECT bullshit FROM xyz');
?>
trigger
<?php
catch (Exception $e)
{
//echo $e;
if ($e->getCode() == "404")
{
Page::getInstance()->load404();
}
else
{
Tracy\Debugger::log($e);
trigger_error($e, E_USER_ERROR);
}
}
?>
Je tohle chování v pořádku? Proč to nespadne rovnou? Navíc, když si vyvolám trigger_error tak mi pak ukazuje chybu v tam kde jsem ho vyvolal a ne ve skutečném umístění, takže hláška že neexistuje tabulka v souboru core.php a ne v souboru homepage.php mi je pak k ničemu, dělám to vůbec dobře?
- Jak jsem psal, web je plný notice a pokud si krom logování nastavím i zasílání notifikací na mail, tak se mi pošle první notice z error.log a nikoliv ta hrubší chyba (fatal …), dá se to nastavit? (Prostě chci, aby se mi zasílaly chyby, na kterých to skutečně padá, nikoliv aby to spadlo na něčem fatálním a mě na mail přijde 1 řádek z error logu , většinou noticka).
Editoval Kcko (5. 12. 2016 18:30)
- Kcko
- Člen | 468
midlan napsal(a):
ad 1. podle mě je to nad slunce jasné, jak tracy může zpracovat vyjímku kterou odchytíš catchem? Na konec svého catch bloku dej
throw $e;
Nevím jestli ti pak tracy ukáže přesně řádek s chybným dibi::query, v nette jsem začátečník.
Ukáže, to mě vůbec nenapadlo :-) Díky!