Azt szeretném megoldani, hogy az összes kliens oldali logot a szerverre át szeretném küldeni például XHR küldésekkel. (Nyilván ha éppen az a baj, hogy nincs hálózat, akkor nem fog átmenni.)
Az értelme az volna, hogy ha esetleg nem működik valami, akkor lehetőleg ne kelljen a felhasználóhoz rohangálni: a szerveren ott lesznek a logok.
Megtaláltam, hogy a console objektumon keresztüli üzeneteket át lehet írányítani ilyenekkel:
const info = console.info.bind(console)
console.info = (...args) => {
info('My Console!!!')
info(...args)
}
Megtaláltam azt is, hogy globális kezeletlen exception handlert is fel lehet venni:
window.addEventListener('error', function (evt) {
console.log("Caught[via 'error' event]: '" + evt.message + "' from " + evt.filename + ":" + evt.lineno);
console.log(evt); // has srcElement / target / etc
// evt.preventDefault();
});
A kérdésem az, hogy van-e más ilyen forrás, amit lehet/érdemes loggolni. Illetve van-e erre valami teszt lehetőség kipróbálgatni? Ami leginkább érdekelne, hogy régebben láttam warningokat is a web developer logban, amiket a HTML engine adott ki magából - persze most nem jut eszembe, hogy mire jött. Ezek a console.warn() híváson keresztül mennek, vagy más úton kerülnek a logba? Ha más úton, akkor hogyan lehetne elkapni? Hogy lehetne ilyen példaoldalt csinálni, amit ki tudom próbálni, hogy a log szerverre irányítás minden esetre jól működik-e?
Esetleg ki használ ilyen kész libet, amit csak be kell emelni?
- 303 megtekintés
Hozzászólások
up
- A hozzászóláshoz be kell jelentkezni
Mi ezt hasznaljuk kliens oldali hibak elkapasara: https://docs.sentry.io/platforms/javascript/
--
"ssh in a for loop is not a solution" – Luke Kanies, Puppet developer
- A hozzászóláshoz be kell jelentkezni
Köszi!
Az irány jó, de ilyen ilyen tömegű 3rd party kódot nem rántanék be csak ezért. Tippre kb 200 sor volna ez vanilla JS-ben, ezt pedig nem nagyon tudom átlátni, hogy mit miért csinál. Overengineer-ednek is látszik. Megpróbálom azért átrágni magam rajta lassan.
Eleve ezt a komponenst hülyeség volna másik szerverről lekérni, inkább sajátról. De még bölcsebb lenne inline script-be tenni már a szerveren.
- A hozzászóláshoz be kell jelentkezni
Egy érv sentry-jellegű megoldás használata mellett és a "csináljunk sajátot" ellen: az ilyen rendszernél nem a kliensoldali javascript funkcionalitás az igazán komplikált. Az, hogy megbízhatóan fusson a szerver, ami fogadja a log-okat, és hogy azon a szerveren majd a programozó csapat áttekinthetően el tudja érni a beérkezett információt (pl. csoportosítva, hogy milyen exception-ok léptek fel, hányszor, milyen kliensnél, azok a kliensek épp mit csináltak, stb.) sokkal bonyolultabb feladat.
Még egy: Sentry-nek pl. extra előnye, hogy szerveroldali kódból is lehet hasonló infókat beküldeni, így egy helyen látod a teljes stack exception-jeit.
- A hozzászóláshoz be kell jelentkezni
Van ebben igazság. Ha olyan sok logom lenne, akkor meggondolnám egy ilyen rendszer használatát.
- A hozzászóláshoz be kell jelentkezni
Mi Sentry-rol valtottunk DD-re.
Eselteg itt meg lehet nezni a kodban, hogy ok hogyan kapkodjuk el az errorokat.
- A hozzászóláshoz be kell jelentkezni
Köszi! Ez már kicsit átláthatóbb, vagy csak több erőt fektettem bele. Sikerült kibogarászni, hogy mit csinál.
- A hozzászóláshoz be kell jelentkezni
Megosztod, hogy mi a megoldás lényege?
Ha nem válaszolnék kommentben, hát küldj privátot!
- A hozzászóláshoz be kell jelentkezni
én a navigator.sendBeacon()-t használom a kliensfurcsaságok továbbküldésére (https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon), mondjuk a klienseink legalább mind újkori browsereket kell, hogy használjanak
~ubuntu, raspbian, os x~
- A hozzászóláshoz be kell jelentkezni
Köszi, ez is hasznos!
- A hozzászóláshoz be kell jelentkezni
Barmilyen RUM megoldas (ElasticSearch APM ingyenes Basic license-el is; de van meg csomo ahol 5 agent-ig inygenes, vagy mas licenszelesi modon ingyenes)
- A hozzászóláshoz be kell jelentkezni
Ez nekem kínai, de köszönöm! :-)
- A hozzászóláshoz be kell jelentkezni
RUM = Real User Monitoring
APM = Application Performance Monitoring (hasonlo, mint a brwoserekben levo dev tool, csak kicsit kevesebbet meg sokkal tobbet is tud)
- A hozzászóláshoz be kell jelentkezni