quickbox icon indicating copy to clipboard operation
quickbox copied to clipboard

Feature: Logovani aplikace

Open xkenia opened this issue 4 years ago • 12 comments

Navrh na upravy logovani aplikace, aby bylo pouzitelnejsi

  • [x] chybi timestamp
  • hodne veci neni logovanych - nezobrazuje se v Zaznamu cinnosti aplikace
  • [ ] pokud odstranim zavodnika
  • [ ] pokud odhlasuju zavodnika
  • [ ] dalsi jakekoli odstraneni radku ... a dalsi, prvni 2 beru jako temer nutne por pripad hledani problemu
  • ukladani logu lokalne nebo do db i po skonceni programu - mozna jsem jen nenasel

xkenia avatar Oct 25 '21 07:10 xkenia

V QE 2.3.9 vypadal log aplikace nasledovne: log-old

Pokud se nepletu, tak s prechodem na necrolog se to zmenilo na soucasny stav: log

Dle https://github.com/Quick-Event/quickbox/wiki/Debugging-QuickEvent drive fungoval parametr --log-file <path/to/log/file> a zaroven se log ukladal do Temp slozky, ani jedno se mi na soucasne verzi na W10 nepodarilo rozchodit / nepodarilo se mi najit dany soubor.

paukert avatar Oct 25 '21 12:10 paukert

A proc vlatne doslo ke zmene logovani ? Zatim me prijde ze je to k horsimu, podle textu nademnou.

arnost00 avatar Oct 25 '21 12:10 arnost00

  • k prechodu na necrolog doslo, protoze je to lepsi logovaci framevork, nez ten predchozi
  • kam se ztratil timestamp nevim, ale je to nejaka regrese, protoze necrolog samozrejme timestamp obsahuje
  • specialni switch byl odstranen, protoze stderr jde snadno otocit do souboru, takze neni potreba, aby to umela jeste aplikace. Vyjimkou by byl postmorten log, to znamena neco, co by uzivatel mohl poslat napr. po padu QE. Takova vec, ale neexistovala ani pred prechodem na necrolog.

fvacek avatar Oct 31 '21 18:10 fvacek

opravil jsem ten chybejici timestamp :)

fvacek avatar Oct 31 '21 19:10 fvacek

specialni switch byl odstranen, protoze stderr jde snadno otocit do souboru, takze neni potreba, aby to umela jeste aplikace. Vyjimkou by byl postmorten log, to znamena neco, co by uzivatel mohl poslat napr. po padu QE. Takova vec, ale neexistovala ani pred prechodem na necrolog.

Dle meho nazoru, pokud chceme aby nam uzivatele posilali logy z padu a divneho chovani, by QE mel logovat automaticky. Nebo by aspon ve wiki melo byt jak to uzivatel ma udelat, ale aktualni. Ne kazdy vi ze napr. ve Windows to logovani zapne : quickevent.exe 2> qe.log

arnost00 avatar Nov 01 '21 14:11 arnost00

V aplikačním logu jsou ještě sloupce Category, Function a Data, nevím, jestli se někde ještě využívají (plánují využívat), ale pokud ne, tak bych je navrhoval odebrat.

paukert avatar Nov 01 '21 15:11 paukert

specialni switch byl odstranen, protoze stderr jde snadno otocit do souboru, takze neni potreba, aby to umela jeste aplikace. Vyjimkou by byl postmorten log, to znamena neco, co by uzivatel mohl poslat napr. po padu QE. Takova vec, ale neexistovala ani pred prechodem na necrolog.

Dle meho nazoru, pokud chceme aby nam uzivatele posilali logy z padu a divneho chovani, by QE mel logovat automaticky. Nebo by aspon ve wiki melo byt jak to uzivatel ma udelat, ale aktualni. Ne kazdy vi ze napr. ve Windows to logovani zapne : quickevent.exe 2> qe.log

dyt to preci pisu, ze vyjimkou by byl posmorten log, ktery ale nebyl ani pred prechodem na necrolog

fvacek avatar Nov 05 '21 12:11 fvacek

V aplikačním logu jsou ještě sloupce Category, Function a Data, nevím, jestli se někde ještě využívají (plánují využívat), ale pokud ne, tak bych je navrhoval odebrat.

Category se nekdy pouziva, Function a Data ne

fvacek avatar Nov 05 '21 12:11 fvacek

jak správně vlastně logovat v quickeventu? měl bych se držet následujících maker?

qfDebug() 
qfMessage() 
qfInfo() 
qfWarning() 
qfError() 

Jak mohu použít makra s category? qfCWarning(category)

K čemu slouží: qfLogScope(name) a qfLogFuncFrame()?

otahirs avatar Dec 06 '21 16:12 otahirs

  • qfDebug() - pro development, v release buildu se prelozi na NOP
  • qfMessage() - neco, co neni defaultne v logu, ale prelozi se v release buildu, a da se v budoucnu zapnout z prikazove radky -d :M
  • qfInfo() - prvni uroven, ktera projde defaultnim log filterem, takze zpravy, ktere jsou zajimave pri normalnim behu jako pripojuji se k DB a pod.
  • qfWarning() jasny
  • qfError() jasny

fvacek avatar Dec 12 '21 21:12 fvacek

Jak mohu použít makra s category? qfCWarning(category)

loguje se pro urcitou kategorii. qfInfo() a spol se pouzivaji s prepinacem -d a loguji pro svuj modul, coz je cpp soubor, kde je makro pouzito. takze quickevent -d foo:W loguje vse z modulu foo.cpp s levelem Warning nebo Error

qfCInfo("bar") loguje kategorii bar bez ohledu v jakem modulu se nachazi, muze se nachaze i ve vice modulech.

priklad:

#define logNecoD() qfCDebug("Neco")

void foo()
{
  logNecoD() << "zprava1"; 
  qfCInfo("Neco") << "zprava1"; // stejne jako o radek vyse
}

fvacek avatar Dec 12 '21 21:12 fvacek

qfLogScope loguje vstup a vystup ze scope, scope je to mezi chlupatymi zavorkami { scope } Specialni typ scope je funkce, na to je specializovane makro logFuncFrame

fvacek avatar Dec 12 '21 21:12 fvacek