16. 02. 2007. | #11 |
majstor
Wrote a book
|
Da, ali valjda imas neku listu da kazem 'prioriteta' tj log API bi valjda trebao da ima sto manje "zavisnosti" jer on treba da osigura 'biljezenje' greske.
Ili da imas 2 log-a - jedan koji obradjuje app-level greske i drugi koji obradjuje system-level greske. Jednostavno ne vidim logiku zapisivanja greske u bazu a ako je jedna od tih gresaka - nedostupnost baze. |
16. 02. 2007. | #12 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Pa načelno nikad ne možeš biti siguran da li će medijum na koji se šalje poruka o grešci zakazati (nedovoljno mesta na disku za log fajl, nedostupnost baze, oboren SMTP server itd)... Zato koristiš (najmanje) dva appendera i to je to.
A dosta je glupo i naporno posebno hendlovati greške koje se tiču baze, posebno one za slanje mejla, itd... Generalni princip je da se sve greške rutiraju logging API-ju, a on se posle snalazi s njima. |
16. 02. 2007. | #13 |
Goran Pilipović
Sir Write-a-Lot
|
Jablane, prijatelju, jesi ti uopšte shvatio u čemu je problem?
Normalno je da ti se pošalje na mail "Greška: ne mogu da se povežem na bazu podataka", ali nije normalno da pokušavaš da pročitaš iz te iste baze na koju email adresu da se pošalje. Znači ovako ide otprilike (pseudokod): PHP kôd:
PHP kôd:
Nisam očekivao da moram da ti objasnim da taj email nikada ne ode Nadam se da je sada jasnije i ne vidim ni jedan slučaj koji može da opravda ovo.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
16. 02. 2007. | #14 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Ama razumem ja vas, razumite i vi mene...
Vidi: Imaš neki kod koji radi nešto (program) i u kome nekad dođe do neke situacije koja treba da se loguje. Sa druge strane imaš logging API koji prihvata log poruke i nad njima radi određeni skup operacija (šalje na mejl, piše u bazu itd). Besmisleno je posebno hendlovati greške različite prirode - jednostavno sve se šalju logging API-ju. Ako logging API hoće da pošalje error report na adresu iz baze, on to pokuša i normalno pukne, bez obzira šta stoji u toj grešci. Zato bih ja jedino promenio funkciju fatal_error u nešto kao: PHP kôd:
|
16. 02. 2007. | #15 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
Ovo o čemu Jablan priča ima smisla u situacijama gde je potrebna proširivost i gde se ne zna tačno na koji način će kod biti korišćen. To manje više važi za sve biblioteke koje je potrebno koristiti u više navrata, a logger je jedna od osnovnih koju baš i ne treba pisati svaki put iznova.
Ne prave svi aplikacije kod kojih se sve zna od samog starta ili koje su zatvorene u feature set definisan početnom specifikacijom. Npr, pravi se jednostavan CMS gde je hitnost obrade greške relativno mala tako da slanje emaila administratoru radi posao. Međutim, za mesec dana koristi se ista osnova za sistem koji nadgleda stanje servera. U tim situacijama brza obrada greške je a must jer nećeš da ti server bude nedosutpan dok se admin seti da proveri mail pa SMS ili IM imaju više smisla. Dalje, možeš da loguješ kompletan dump sistemskih promenljivih u bazu ili fajl kako bi programeri mogli lakše da otklone grešku ili bar da je simuliraju (mnoge greške nije jednostavno reprodukovati). Ili automatski submit u bug tracking sistem? I tako dalje i tako dalje. Potrebe različitih sistema se razlikuju... Najbitnija stvar u celoj priči je upravo to što je Jablan i naveo - kod za obradu greške ne sme praviti greške koje sam mora da obrađuje. Ako svi složeniji oblici logavanja propadnu onda obično postoji neki elementarni fallback za koji se zna sa najvećom sigurnošću da će biti izvršen (printanje poruke o grešci "korisnku u lice" npr).
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog Poslednja izmena od Ilija Studen : 16. 02. 2007. u 13:13. |
16. 02. 2007. | #16 |
Goran Pilipović
Sir Write-a-Lot
|
@jablane: zezaš malo, a?
Pričam o biserima jednog polu-populrnog CMS-a, ne pričam o tome kako treba da se napravi. Stavio sam šta su "programeri" napisali, a ti kažeš da to ima smisla u "određenim situacijama" kada se to napravi kako treba? Pa ne pričam o tome
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
16. 02. 2007. | #17 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
Ah, štagod... Bitno da smo svi rekli šta smo imali.
|
17. 02. 2007. | #18 |
Boris
Grand Master
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
|
Kad se vi nastavljate...
Dakle, taj polu-popularni CMS je pravljen pod predpostavkom da se nece desiti da pukne baza, jer ako pukne, znaces vrlo dobro da se to desilo Kod koji handluje greske je tu zbog manje fatalnih problema do kojih bi doslo u svakodnevnom radu CMS-a. Na stranu cela prica da li tako treba ili ne treba. Mozda je glupo (u konkretnom slucaju), je ali je tako...
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams |
17. 02. 2007. | #19 |
Goran Pilipović
Sir Write-a-Lot
|
A kako ćeš ti to znati da je pukla baza? Jel' ti čučiš na sajtu po ceo dan pa gledaš da li sve funkcioniše? Pa zamisli da imaš 5-6-10 svojih sajtova...
Koje je (bilo kakvo) opravdanje čuvati debug email adresu u bazi?
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
301 redirkecija "dinamickog" URLa na "dinamicki" URL | mb_sa | Regular expression i htaccess | 7 | 02. 07. 2008. 19:21 |
Karakteri "&" i "=" i XMLHttpRequest | Milos Vukotic | Regular expression i htaccess | 18 | 01. 10. 2007. 15:16 |
If IT really is a "profession", what is our "pro bono" contribution as IT pros? | oksite | e-Business | 26 | 12. 01. 2007. 11:18 |
"Telekom Slovenije" preuzeo "Blic.net" za 390.000 evra | Aleksandar Marković | Komunikacije | 2 | 23. 12. 2006. 14:23 |