@hunsziszi/js-logger
v1.0.0
Published
Lightweight in-browser debug & logging singleton
Maintainers
Readme
JsLogger
Egyszerű, könnyen integrálható in-browser debug és logging singleton.
Főbb jellemzők
- Memóriában tárolt logok (konfigurálható maximum).
- Rugalmas konzol-kimenet (szintek, színek, ikonok).
- Auto-detect debug mód URL, localStorage, globális config vagy hostname alapján.
- Egyszerű ESM import és böngésző auto-attach.
Gyors telepítés
NPM:
npm install @hunsziszi/js-loggerCDN / böngésző (példa): helyezd be JsLogger.js modulodat, vagy használd az index.php demo meta-tag-et az auto-attach teszthez.
Használat (ESM)
import { jsLogger } from '@hunsziszi/js-logger';
jsLogger.info('init', 'Logger initialized');
jsLogger.error('api', 'Request failed', { status: 500 });
// Konfiguráció
jsLogger.setMaxLogs(500).enableColoredConsole(true).setConsoleOutputLevels(['debug','info','warn','error']);Böngészőre kötés (auto-attach)
A csomag tartalmaz egy attachToWindow(namespace?: string) függvényt (autoAttach.js),
amely felteszi a jsLogger-t a window.App, window.jsLogger vagy egy tetszőleges namespace alá.
Auto-attach akkor fut, ha az oldal tartalmazza a meta taget meta[name="js-logger-auto-attach"]
vagy a keresőstringben szerepel js-logger-auto=true.
Példa HTML meta tag-re (demo index.php):
<meta name="js-logger-auto-attach" content="1">Auto-detect feltételek (amik bekapcsolják a debug módot)
- URL paraméter:
?debug=truevagy?debug=1(pl.https://example.com/?debug=true) - localStorage:
localStorage.getItem('app_debug') === 'true'(pl.localStorage.setItem('app_debug','true')) - Global config:
window.globalConfig?.environment === 'development'(pl.<script>window.globalConfig={environment:'development'}</script>) - Hostname:
localhost, vagy tartalmazza.local, vagydev.(pl.localhost,app.local,dev.example.com)
Az első igaz feltétel aktiválja a debug módot. Manuális vezérléshez használd a setAutoDetect(false)-et és setDebugMode(true|false)-t.
API áttekintés
jsLogger.debug(category, message, data?, force?)jsLogger.info(category, message, data?, force?)jsLogger.success(category, message, data?, force?)jsLogger.warn(category, message, data?, force?)jsLogger.error(category, message, data?, force?)jsLogger.setMaxLogs(count)jsLogger.setDefaultRecentCount(count)jsLogger.setConsoleOutputLevels(levels)jsLogger.enableColoredConsole(true|false)jsLogger.setIconLevels(levels)jsLogger.toggleDebug()jsLogger.setDebugMode(true|false)jsLogger.setAutoDetect(true|false)jsLogger.getRecentLogs(count?)jsLogger.getLogsByCategory(category)jsLogger.getLogsByLevel(level)jsLogger.clearLogs()jsLogger.exportLogs()jsLogger.showPanel()
Részletes ismertető
jsLogger.debug(category, message, data?, force?)— Hibakeresési szintű üzenet. A log csak akkor kerül elmentésre, ha a debug mód be van kapcsolva, vagy aforcetrue. Hasznos részletes belső állapotok naplózására. Példa:jsLogger.debug('ui','button clicked',{id:'save'})jsLogger.info(category, message, data?, force?)— Információs üzenet, általános működési eseményekhez. Szintén a debug mód aktiválása esetén kerül elmentésre (vagyforce-szal). Példa:jsLogger.info('init','App started')jsLogger.success(category, message, data?, force?)— Sikeres műveletek jelzése (pl. API válasz feldolgozása). Viselkedése hasonló azinfo-hoz. Példa:jsLogger.success('api','Data saved')jsLogger.warn(category, message, data?, force?)— Figyelmeztetések; alapértelmezetten mindig elmentésre kerülnek, és konzolra is kiíródnak. Példa:jsLogger.warn('validation','Missing required field')jsLogger.error(category, message, data?, force?)— Hibajelentés; mindig elmentésre kerül, stack információt is tárolhat, ésconsole.error-be ír. Példa:jsLogger.error('network','Request failed', err)jsLogger.setMaxLogs(count)— Beállítja a memóriában tárolt logok maximális számát; ha kisebbre állítod, a régebbi bejegyzések levágódnak.jsLogger.setDefaultRecentCount(count)— AgetRecentLogs()alapértelmezett visszatérési méretét állítja.jsLogger.setConsoleOutputLevels(levels)— Meghatározza, mely szintek íródjanak ki a konzolra (pl.['info','warn','error']).jsLogger.enableColoredConsole(true|false)— Engedélyezi vagy tiltja a CSS alapú színezést a konzol kimeneten (ha támogatott).jsLogger.setIconLevels(levels)— Megadja, hogy mely szintek elé kerüljenek emoji/ikon jelölők a konzolban.jsLogger.toggleDebug()— Kézi váltás: felülírja az auto-detectet, menti az állapototlocalStorage-ba (app_debug) és visszaadja az új debug állapotot (true/false).jsLogger.setDebugMode(true|false)— Explicit beállítás kézzel; ez is letiltja az auto-detectet, és menti a beállítást.jsLogger.setAutoDetect(true|false)— Engedélyezi vagy letiltja az automatikus felismerést. Hatrue, újra lefuttatja az auto-detect logikát és törli a manuális felülírást.jsLogger.getRecentLogs(count?)— Visszaadja a legutóbbicountlogot; hacountnincs megadva, asetDefaultRecentCountáltal meghatározott érték lesz használva.jsLogger.getLogsByCategory(category)— Kategória szerinti szűrés; visszaadja a megadottcategory-hez tartozó bejegyzéseket.jsLogger.getLogsByLevel(level)— Szint szerinti szűrés; például'error'vagy'warn'.jsLogger.clearLogs()— Kitörli az összes memóriában lévő logot.jsLogger.exportLogs()— Formázott JSON stringként exportálja az összes logot (pl. fájlba mentéshez).jsLogger.showPanel()— Rövid összegző panelt ír ki a konzolra a jelenlegi beállításokról és statisztikákról (debug állapot, logszámok, stb.).
TypeScript / editor támogatás
A csomag types mezője JsLogger.d.ts-re mutat; így az IDE-k autocompletet és tipizálást adnak.
Fájlok a csomagban
JsLogger.js– forrásindex.js– ESM újra-exportautoAttach.js– window attach helperJsLogger.d.ts– típusdefiníciókindex.d.ts,index.php,README.md,LICENSE
Licenc
MIT — lásd a LICENSE fájlt.
