Generikus logging/debug szerver és kliens

Fórumok

Sziasztok!

Egy ideje a lelki szemeim előtt lebeg egy debuggolást segítő programocska, amiről nem tudom elhinni, hogy eddig még senki nem csinálta meg, de hiába kerestem Google-ben, nem találtam ilyet. A következőt képzeltem el: szerver-kliens alapú naplózás, a localhoston fut egy naplózó szerver, amely a kliensektől (az éppen debuggolás alatt lévő programoktól) fogadja a naplózandó üzeneteket. Egy ilyen üzenet gyakorlatilag bármit tartalmazhat, egy változó értékét, egy szimpla üzenetet, kulcs-érték párokat, whatever, mindemellett mondjuk van egy "fontossága" (info, warning, error, critical, ilyesmi) meg mondjuk plusz egy mezője, ahol azonosíthatom, hogy a program mely alrendszere küldte az üzenetet. A szerver csak ül egy porton és fogadja ezeket az üzeneteket, majd tárolja őket egy egyszerű SQLite vagy akármilyen lightweight adatbázisban. Ezt az adatbázist pedig akár on-the-fly módon, akár utólag egy erre a célra készített (lehetőleg konzolos, ncurses-felületű) kliensprogrammal lehetne elemezni, a kapott debug üzeneteket tartalom, küldő, időpont, fontosság szerint szűrni. Erre azért gondoltam, mert egy idő után az egyik saját projektem eljutott arra a komplexitásra, hogy konzolra írogatott debug üzenetekkel nagyon nehéz hibát keresni benne, de az IDE-k meg a gdb által nyújtott hibakeresési lehetőségeket is elég nehézkesnek találom (pl ha egy reference count leak-et próbálok levadászni egy Python extension-ben).

Szóval: nem hiszem el, hogy valaki nem csinált már ilyet előttem, tud valaki ilyen kész opensource megoldásról?

Hozzászólások

hmm... én nem tudok ilyenről, de tetszik az ötlet... ha nem vizsgaidőszak lenne, azt mondanám csináljuk meg most :)

Hat ha nem kaptal a google-n akkor ket lehetoseg van:

- Nem csinaltak meg ilyent. Ez esetben vagy a te projekted az eddigi legkomplexebb projekt amit valaha valaki irt, vagy masok meg tudtak oldani ilyesmi nelkul a debuggolast.

- Nem tudsz keresni a google-n.

Lehet valasztani, esetleg kiegesziteni :)

P.S. Ja es a generikus az jo magyar szoval altalanos...

Igen, a debuggolás pedig hibamentesítés, a logging naplózás, a szerver kiszolgáló, a kliens pedig ügyfél. :) De úgy gondolom, ha a BME-s oktatásban jó a "generikus", akkor nekem is jó lesz.

Ami az én projektemet illeti: persze hogy meg lehetne oldani ilyen nélkül is, most is megoldom valahogy, csak így _nekem_ kényelmesebb lenne. A morzéval is egész jól megoldották a kommunikációt, de azért mégis az email mennyivel f*szább, nem? :)

a kis programocska: syslogd (Minden linux rendszeren adott, oda logol, ahova akarod)
kliens-oldal: syslog()

Tud adatbázisba naplózni?

Találtam egyébként időközben egy rsyslogd nevű kütyüt, ami állítólag mySQL-be naplóz, de nem tudom, hogy meg lehet-e oldani, hogy a "hagyományos" syslog cuccok továbbra is fájlokba menjenek-e. De ha ez jó lenne, akkor a kérdés már csak arra egyszerűsödne, hogy van-e valami elegáns megjelenítő frontend ehhez, vagy meg kell-e azt is írni.

Én is a syslogd-re szavazok. :)
Mondjuk a figyelésre meg lehet használni a logsurfer+ -t.