Generikus logging/debug szerver és kliens

 ( demian | 2006. május 22., hétfő - 16:54 )

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ás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

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

hasonló a parám nekem is, ha nem vizsgaidőszak lenne, simán nekiállnék, de így... :)

Pedig van a neve Log4c. Gondolom ugyanaz mint a Log4j en ezt hasznalom loggolasra, ha javaban programozok, elegge rugalmasan configuralhato a loggolasi logika szet van valasztva a logging modjatol.Egyszer megirod, hogy mit akarsz loggolni es szabadom kivalaszthatod, hogy hova.

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...

sztem nemcsak 2 lehetőség van... a világ nem kettes számrendszerű :P
egy ilyen cuccost sok mindenre lehetne értelmesen használni... szerintem :)

SZVSZ szerintem világ != google találatok

mindenki mindenre google-t mondja. Ugyan keresőnek nem rossz, de azért nem csak abból áll a világ/net.
szerintem.....

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.

syslog-ng-vel azt csinálsz, amit akarsz.
http://www.balabit.hu/products/syslog_ng/
ajánlom a faq elolvasását

köszi, megnézem!

  1. syslog-ng FAQ
  2. pelda kesz megoldasra: WLM

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