UNPKG

ng2-logger

Version:

isomorphic logger for browser/server in typescript

138 lines 4.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.demoTs = demoTs; const lib_1 = require("tnp-core/lib"); const ng2_logger_1 = require("./ng2-logger"); function demoTs() { const separator = (title) => { console.log('\n\n=============================='); console.log(title); console.log('==============================\n'); }; lib_1.Helpers.taskStarted('LOGGER EDGE CASE DEMO'); //#region BASIC USAGE separator('1️⃣ BASIC USAGE'); const log = ng2_logger_1.Log.create('cli'); log.info('info'); log.i('info alias'); log.error('error'); log.er('error alias'); log.data('data'); log.d('data alias'); log.warn('warn'); log.w('warn alias'); //#endregion //#region GLOBAL LEVEL separator('2️⃣ GLOBAL LEVEL (WARN+)'); ng2_logger_1.Log.setGlobalLevel(ng2_logger_1.Level.WARN); log.info('SHOULD NOT PRINT'); log.warn('SHOULD PRINT'); log.error('SHOULD PRINT'); ng2_logger_1.Log.setGlobalLevel(null); //#endregion //#region ONLY LEVEL separator('3️⃣ ONLY LEVEL (ERROR ONLY)'); ng2_logger_1.Log.onlyLevel(ng2_logger_1.Level.ERROR); log.info('NO'); log.error('YES'); ng2_logger_1.Log.onlyLevel(); // reset (if your impl allows) //#endregion //#region DISABLE / ENABLE separator('4️⃣ DISABLE / ENABLE'); ng2_logger_1.Log.disableAllLogs(); log.error('NO PRINT'); console.log('console.log blocked'); ng2_logger_1.Log.enableAllLogs(); log.error('PRINT AGAIN'); //#endregion //#region PERMANENT DISABLE // separator('5️⃣ PERMANENT DISABLE'); // Log.disableAllLogsPermanetly(); // log.error('NO'); // Log.enableAllLogs(); // log.error('STILL NO'); // NOTE: // After this point console is dead permanently. // So we re-enable manually for demo continuation: // console.log = (...args: any[]) => process.stdout.write(args.join(' ') + '\n'); //#endregion //#region MUTED MODULES separator('6️⃣ MUTED MODULES'); ng2_logger_1.Log.settings.mutedModules = ['allowed']; const allowed = ng2_logger_1.Log.create('allowed'); const blocked = ng2_logger_1.Log.create('blocked'); allowed.info('YES'); blocked.info('NO'); ng2_logger_1.Log.settings.mutedModules = []; //#endregion //#region SET LEVEL PER LOGGER separator('7️⃣ LOGGER.setLevel'); const levelLog = ng2_logger_1.Log.create('level-test'); levelLog.setLevel(ng2_logger_1.Level.ERROR); levelLog.warn('NO'); levelLog.error('YES'); //#endregion //#region LARGE OBJECT separator('8️⃣ LARGE OBJECT'); log.info('large object', { nested: { arr: Array.from({ length: 50 }, (_, i) => i), }, }); //#endregion //#region CIRCULAR OBJECT separator('9️⃣ CIRCULAR OBJECT'); const circular = {}; circular.self = circular; log.info('circular test', circular); //#endregion //#region ERROR OBJECT separator('🔟 ERROR OBJECT'); try { throw new Error('boom'); } catch (e) { log.error('caught error', e); } //#endregion //#region SPECIAL VALUES separator('1️⃣1️⃣ SPECIAL VALUES'); log.info(null); log.info(undefined); log.info(NaN); log.info(Symbol('test')); log.info(BigInt(123)); //#endregion //#region VERY LONG MESSAGE separator('1️⃣2️⃣ VERY LONG MESSAGE'); log.error('x'.repeat(2000)); //#endregion //#region TIMESTAMP separator('1️⃣3️⃣ TIMESTAMP'); ng2_logger_1.Log.settings.showTimestamp = true; log.info('with timestamp'); ng2_logger_1.Log.settings.showTimestamp = false; //#endregion //#region CONCURRENCY SPAM separator('1️⃣4️⃣ STRESS TEST (100 logs)'); for (let i = 0; i < 100; i++) { log.info(`spam ${i}`); } //#endregion //#region MULTIPLE MODULES separator('1️⃣5️⃣ MULTIPLE MODULES'); const a = ng2_logger_1.Log.create('a'); const b = ng2_logger_1.Log.create('b'); a.info('module a'); b.info('module b'); //#endregion //#region MODULE NAME TRIM EDGE CASE separator('1️⃣6️⃣ MODULE NAME TRIM'); const spaced = ng2_logger_1.Log.create('networking '); const trimmed = ng2_logger_1.Log.create('networking'); spaced.info('with trailing space'); trimmed.info('without trailing space'); //#endregion lib_1.Helpers.taskDone('LOGGER EDGE CASE DEMO DONE'); } //# sourceMappingURL=demo.js.map