Zachytávání chyb typu notice
- TOMeek
- Člen | 64
Zdravím, snažím se udělat takový jednoduchý logger, který by mi sbíral laděnky na jednom místě z více projektů, ale narazil jsem na problém, zak zjistit, že nastala chyba typu Notice. Zaloguji a odešlu vše co je Exception, ale nepřišel jsem na to jak zalogovat úroveň notice :-( Můžete mi prosím poradit?
Děkuji Tomáš
- ufik
- Člen | 14
Ahoj Tome,
všechny tyto upozornění a varování zachycuje Apache a loguje je do souboru, takže by ti měl stačit přístup k tomuto souboru. Takže se možná snažíš napsat něco co už je napsané:) Pokud o tomto víš a chtěl by jsi to opravdu dělat znovu a sám tak bych tipnul, že by mohla stačit funkce error_get_last(), kde už vyčteš o jakou chybku, či upozornění se jedná a můžeš si jí případně uložit.
Případně přepsat error handler:
http://stackoverflow.com/…ned-offset-0
TOMeek napsal(a):
Zdravím, snažím se udělat takový jednoduchý logger, který by mi sbíral laděnky na jednom místě z více projektů, ale narazil jsem na problém, zak zjistit, že nastala chyba typu Notice. Zaloguji a odešlu vše co je Exception, ale nepřišel jsem na to jak zalogovat úroveň notice :-( Můžete mi prosím poradit?
Děkuji Tomáš
Editoval ufik (26. 7. 2013 19:15)
- TOMeek
- Člen | 64
Děkuji za rady. Ale nedaří se mi :-( udělám si jenom pokusně v basepresenteru třeba
$this->template->test = $test;
Nette mi vyhodí správně laděnku popř na produkci zaloguje chybu
Notice Undefined variable: test
, ale error_get_last()
mi vypíše úplně něco jiného (že je chyba na řádku 28 v loader.php).
Já jsem se snažil i v Nette zjistit, jak je to tam implementované, ale
bohužel jsem na to nedošel :-( já jsem koukal, že existuje stránka
(služba) qray.eu přesně n tohle, ale vypadá to, že je to mrtvý (nebo
silně neaktualizovaný) projekt.
ufik napsal(a):
Ahoj Tome,
všechny tyto upozornění a varování zachycuje Apache a loguje je do souboru, takže by ti měl stačit přístup k tomuto souboru. Takže se možná snažíš napsat něco co už je napsané:) Pokud o tomto víš a chtěl by jsi to opravdu dělat znovu a sám tak bych tipnul, že by mohla stačit funkce error_get_last(), kde už vyčteš o jakou chybku, či upozornění se jedná a můžeš si jí případně uložit.
Případně přepsat error handler:
- ufik
- Člen | 14
A můžeš mi osvětlit k čemu konkrétně to potřebuješ? Mě totiž přijde, že logování chyb z více projektů na jednom serveru obstarává právě webový server (Apache), ten zachytí všechno co se děje, nejenom chyby a upozornění, ale veškeré přístupy (transfer). Takže mi moc nejde do hlavy co se snažíš vyřešit za problém.
Každopádně jestli ta funkce vrací pouze tuhle část, tak to bude chtít zkusit implementovat to vlastní logování chyb, v Nette to je několikrát použité. Když napíšeš konkrétní problém, tak Ti s tím rád pomůžu, ale takhle nemám představu co by jsi rád.
TOMeek napsal(a):
Děkuji za rady. Ale nedaří se mi :-( udělám si jenom pokusně v basepresenteru třeba
$this->template->test = $test;
Nette mi vyhodí správně laděnku popř na produkci zaloguje chybu
Notice Undefined variable: test
, aleerror_get_last()
mi vypíše úplně něco jiného (že je chyba na řádku 28 v loader.php). Já jsem se snažil i v Nette zjistit, jak je to tam implementované, ale bohužel jsem na to nedošel :-( já jsem koukal, že existuje stránka (služba) qray.eu přesně n tohle, ale vypadá to, že je to mrtvý (nebo silně neaktualizovaný) projekt.ufik napsal(a):
Ahoj Tome,
všechny tyto upozornění a varování zachycuje Apache a loguje je do souboru, takže by ti měl stačit přístup k tomuto souboru. Takže se možná snažíš napsat něco co už je napsané:) Pokud o tomto víš a chtěl by jsi to opravdu dělat znovu a sám tak bych tipnul, že by mohla stačit funkce error_get_last(), kde už vyčteš o jakou chybku, či upozornění se jedná a můžeš si jí případně uložit.
Případně přepsat error handler:
- frosty22
- Člen | 373
Čauky,
řešil jsem něco podobného, a udělal jsem si na to takové centrum, které
jede mimo Nette, nalinkuje se v boostrapu na něj a pak je k němu přístup
buď přes XML api co poskytuje a nebo přímo přes parametr a hodnotu
v URL.
Zatím to používám na všem, a jsem s tím spokojen,leč tedy jsem to trošku nešikovně pojmenovat DeployCenter, ale má to více funkčností, například plánovaný deployment, kdy to zobrazí hlášku na webu, před deploymentem (například za hodinu dojde k odstavení webu) a potom v daný čas zobrazí maintenance stránku. Dále například čištění cache, atd. A ke všemu je přímo poskytnutí XML API.
https://github.com/…DeployCenter
http://www.frosty22.cz/…a-debugovani
- frosty22
- Člen | 373
Jo a co se týče sjednocení, tak tuto stránku ještě nemám hotovou, ale je to hodně triviální v podstatě jen vytvořit nějaký nette projekt, kterému předáš pole URL adres na ty deploycentra nasazená na těch všech projektech a můžeš centrálně zobrazovat vše. K tomuhle se už chvíli chystám, ale ještě jsem se nedokopal, mám jen jeden malej skriptík co mi to stáhne a pošle na email, ale to je taková hodně haluz :=) Ale chystám se k tomu to udělat.