Hibakeresés és naplózó megvalósítás PHPban
Általános hibakeresés megfogalmazása, valamint egy konkrét naplózó mechanizmus implementációja PHP-ban
■ H | K | Sze | Cs | P | Szo | V |
---|---|---|---|---|---|---|
25 | 26 | 27 | 28 | 29 | 30 | 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 | 1 | 2 | 3 | 4 | 5 |
Naplózás
Kivételek naplózása
try{
}catch(Exception $ex)
{
$this->_logger->LogError($ex);
}
Valóban
Igazából közben rájöttem, hogy egy notice-t mondjuk nem szeretnénk kivételen keresztül megvalósítani, úgyhogy az explicit hívás lehetőségét mindenképpen meg kell adni. Mindemellett szerintem érdemes gondolkodni a kivételkezeléssel való szorosabb kapcsolaton...
Nem csak hibákat kell/lehet naplózni
Hosszútávon talán nemjó ...
1) amit te is említettól, hogy nem minden hibatípusra jó, pl. LogDebug, LogNotice, viszont ez megoldható lenne akár külön is, s az Error-ok lennének naplózva a kivételeken keresztül
2) csak erre alapozni azért nem lenne jó, mivel ha a későbbiekben bevezetik a PHPba, hogy a beépített függvények,osztályok is kivételeket fognak kiváltani, s mivel addigra már a rendszereink úgy vannak megépítve, hogy a saját kivételek naplózásában bízunk, akkor kicsit fájhat a fejünk. Vagy akár egy külső osztály használatának a bevezetése is előhozhatja ezt a problémát
3) a kivételek azért lassítják a programot, igaz ez a webes alkalmazásoknál annyira nem ütközik ki
Én inkább azt a menetet ajánlom és követem, hogy saját kivételeket (is) kell használni, viszont ezeknek max a toString-je van felüliírva, és pár tulajdonsággal van kibővítve. Ezek a kivételek aztán a programban vannak elkapva, majd innen naplózásra, kezelésre esetleg "tovább dobásra" kerülnek.
megszakdna a program futása
Üdv,
Felhő
Exception