C a C++ > Obecné

Služba - logování vyjímek

<< < (2/3) > >>

hlucheucho:
ParamStr(0) vrátí Full Path exe souboru služby.

Možná jste to přehlédli, ale když zkusím zapsat do souboru při obsluze událostí OnCreate a OnStart služby, kotevření souboru a zápisu dojde. Proto bych vyloučil práva k adresáři a problém se jménem souboru. Koneckonců zápis do C:\test se chová úplně stejně. Zřejmě je používán defaultní handler vyjímek nikoliv můj.

hu

pf1957:

--- Citace: hlucheucho  03-09-2014, 14:54:45 ---Zřejmě je používán defaultní handler vyjímek nikoliv můj.

--- Konce citace ---
A dival ses, jak vypada TServiceApplication?

Ta sama odchytava neosetrene vyjimky a pise je do systemoveho logu, takze zrus to prirazeni OnException a vyvolej vyjimku -> mela by se ti objevit v systemovem logu. A pokud chces jine chovani, budes si muset subclasnout TServiceApplication, prekryt DoHandleException, zrusit puvodni instanci TServiceApplication a nahradit ji instanci subclasnute tridy.

hlucheucho:
Podstata věci: službě nelze takto snadno "podstrčit" globální handler vyjímek?

hu

pepak:
Službě nelze snadno podstrčit spoustu věcí, tak proč ne i exception handler?

pf1957:

--- Citace: hlucheucho  03-09-2014, 16:14:03 ---Podstata věci: službě nelze takto snadno "podstrčit" globální handler vyjímek?

--- Konce citace ---
Cistym zpusobem ne (proc taky, kdyz sama loguje tam, kam se maji mimoradne udalosti logovat. A neobslouzena vyjimka je mimoradnou udalosti).

Necistym zpusobem by to za urcitych prepodkladu  melo jit udelat tak, ze se najde vhodne misto (asi na zacatku OnExecute 1. instance TService) a tam se prepise handler Forms.Application.OnException.

Navigace

[0] Seznam témat

[#] Další strana

[*] Předchozí strana

Přejít na plnou verzi