standard-log 11.0.0 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/logLevels.d.ts +30 -10
- package/cjs/logLevels.d.ts.map +1 -1
- package/cjs/logLevels.js +20 -0
- package/cjs/logLevels.js.map +1 -1
- package/cjs/logStore.d.ts +1 -0
- package/cjs/logStore.d.ts.map +1 -1
- package/cjs/logStore.js +3 -2
- package/cjs/logStore.js.map +1 -1
- package/cjs/memory.d.ts +1 -0
- package/cjs/memory.d.ts.map +1 -1
- package/cjs/memory.js +13 -4
- package/cjs/memory.js.map +1 -1
- package/cjs/platform.browser.d.ts.map +1 -1
- package/cjs/platform.browser.js +2 -1
- package/cjs/platform.browser.js.map +1 -1
- package/cjs/platform.d.ts.map +1 -1
- package/cjs/platform.js +2 -1
- package/cjs/platform.js.map +1 -1
- package/cjs/standardLog.d.ts +1 -0
- package/cjs/standardLog.d.ts.map +1 -1
- package/cjs/standardLog.js +37 -6
- package/cjs/standardLog.js.map +1 -1
- package/cjs/standardLog.spec.js +58 -1
- package/cjs/standardLog.spec.js.map +1 -1
- package/dist/standard-log.es5.js +76 -14
- package/dist/standard-log.es5.js.gz +0 -0
- package/dist/standard-log.es5.js.map +1 -1
- package/dist/standard-log.es5.js.map.gz +0 -0
- package/dist/standard-log.esm.js +94 -26
- package/dist/standard-log.esm.js.gz +0 -0
- package/dist/standard-log.esm.js.map +1 -1
- package/dist/standard-log.esm.js.map.gz +0 -0
- package/esm/logLevels.d.ts +30 -10
- package/esm/logLevels.d.ts.map +1 -1
- package/esm/logLevels.js +20 -0
- package/esm/logLevels.js.map +1 -1
- package/esm/logStore.d.ts +1 -0
- package/esm/logStore.d.ts.map +1 -1
- package/esm/logStore.js +4 -3
- package/esm/logStore.js.map +1 -1
- package/esm/memory.d.ts +1 -0
- package/esm/memory.d.ts.map +1 -1
- package/esm/memory.js +11 -3
- package/esm/memory.js.map +1 -1
- package/esm/platform.browser.d.ts.map +1 -1
- package/esm/platform.browser.js +2 -1
- package/esm/platform.browser.js.map +1 -1
- package/esm/platform.d.ts.map +1 -1
- package/esm/platform.js +2 -1
- package/esm/platform.js.map +1 -1
- package/esm/standardLog.d.ts +1 -0
- package/esm/standardLog.d.ts.map +1 -1
- package/esm/standardLog.js +42 -7
- package/esm/standardLog.js.map +1 -1
- package/esm/standardLog.spec.js +59 -2
- package/esm/standardLog.spec.js.map +1 -1
- package/package.json +1 -1
- package/ts/logLevels.ts +30 -10
- package/ts/logStore.ts +5 -3
- package/ts/memory.ts +14 -3
- package/ts/platform.browser.ts +2 -1
- package/ts/platform.ts +2 -1
- package/ts/standardLog.ts +46 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standardLog.spec.js","sourceRoot":"","sources":["../ts/standardLog.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { assertron as a } from 'assertron'\nimport { InvalidId } from './errors.js'\nimport { createStandardLog, createStandardLogForTest, getLogger, StandardLog, suppressLogs } from './index.js'\nimport { logLevels, toLogLevelName } from './logLevels.js'\nimport { createMemoryLogReporter } from './memory.js'\nimport { configGlobal, ctx, StandardLogForTest } from './standardLog.js'\nimport { assertSSF, wrapTest } from './testUtil.js'\nimport { LogEntry, Logger, LoggerOptions, LogMethodNames, StandardLogOptions } from './types.js'\n\ndescribe('createStandardLog()', () => {\n describe('logLevel', () => {\n it('is default to info', () => {\n const actual = createStandardLog()\n expect(actual.logLevel).toBe(logLevels.info)\n })\n it('is readonly', () => {\n const actual = createStandardLog()\n a.throws(() => (actual as any).logLevel = logLevels.planck, err => /only a getter/.test(err))\n })\n it('set logLevel from options', () => {\n const actual = createStandardLog({ logLevel: logLevels.planck })\n expect(actual.logLevel).toBe(logLevels.planck)\n })\n })\n\n describe('custom levels', () => {\n it('can define custom levels', () => {\n const actual = createStandardLog({ customLevels: { urgent: 80 } })\n\n expect(actual.toLogLevelName(80)).toBe('urgent')\n })\n })\n\n describe('reporters', () => {\n it('can specify reporter', () => {\n const mem = createMemoryLogReporter()\n const sl = createStandardLog({ reporters: [mem] })\n const log = sl.getLogger('x')\n log.info('abc')\n expect(mem.logs.length).toBe(1)\n })\n })\n\n describe('related to global', () => {\n beforeEach(() => {\n ctx.gsl = undefined\n ctx.configured = false\n })\n it('will affect getLogger() if configGlobal() is not called', () => {\n createStandardLog({ logLevel: logLevels.planck })\n expect(ctx.gsl?.standardLog.logLevel).toBe(logLevels.planck)\n })\n })\n})\n\ndescribe('createStandardLogForTest()', () => {\n it('returns with memory reporter', () => {\n const { reporter } = createStandardLogForTest()\n expect(reporter.getLogMessageWithLevel()).toBe('')\n })\n\n it('defaults to debug', () => {\n const store = createStandardLogForTest()\n expect(store.logLevel).toBe(logLevels.debug)\n })\n})\n\ndescribe('standardLog.getLogger()', () => {\n /**\n * The logger id does not allow all characters due to security concerns.\n * Since we have no control over where the logs will be written to,\n * the could be a case that the ID is being used to exploit those environment.\n * So keeping the supported characters in sane way helps mitigates the risk.\n */\n it('supports id with alphanumeric and :_-.', () => {\n const sl = createStandardLog()\n sl.getLogger('abcdefghijklmnopqrstuvwxyz:-_.1234567890')\n })\n it('supports id with unicode', () => {\n const sl = createStandardLog()\n sl.getLogger('ミク香港')\n })\n it('supports id with @, \\\\ and /', () => {\n const sl = createStandardLog()\n sl.getLogger('@unional/fixture')\n sl.getLogger(`a\\\\b\\\\c`)\n })\n it('supports id with space', () => {\n const sl = createStandardLog()\n sl.getLogger('hello world')\n })\n it.each('`~!#$%^&*()=+|[]{}<>,?'.split(''))('throws if id has unsupported character %s', (char: string) => {\n const sl = createStandardLog()\n a.throws(() => sl.getLogger(char), InvalidId)\n })\n it('throw InvalidId with ssf to the call site', () => {\n const sl = createStandardLog()\n const err = a.throws(() => sl.getLogger('!'), InvalidId)\n\n assertSSF(err, __filename)\n })\n test('id is readonly', () => {\n const sl = createStandardLog()\n const log: any = sl.getLogger('id is readonly')\n a.throws(() => log.id = 'b')\n })\n\n test('get logger with same name gets the same instance', () => {\n const sl = createStandardLog()\n const expected = sl.getLogger('same-inst')\n const actual = sl.getLogger('same-inst')\n expect(actual).toBe(expected)\n })\n\n it('can specify local log level', () => {\n const sl = createStandardLog()\n const log = sl.getLogger('local', { level: logLevels.trace })\n expect(log.level).toBe(logLevels.trace)\n })\n\n test('new logger will get custom level', () => {\n const sl = createStandardLog({ customLevels: { 'to_logger': 1234 } })\n const actual = sl.getLogger('to_logger_logger')\n expect(typeof actual.to_logger).toBe('function')\n })\n\n it('needs to cast Logger when wrapped', () => {\n function wrapper<N extends string = LogMethodNames>(options: StandardLogOptions<N>) {\n const sl = createStandardLog<N>(options)\n const log = sl.getLogger('local')\n expect(log.info).toBeDefined()\n return sl\n }\n\n const sl = wrapper({ customLevels: { 'cust': 123 } })\n const actual = sl.getLogger('c')\n expect(actual.cust).toBeDefined()\n\n // make sure the logger outside also get default log methods\n expect(actual.error).toBeDefined()\n })\n\n describe('log levels', () => {\n async function assertLoggedAtLevel(sl: StandardLogForTest, method: LogMethodNames, level: number) {\n const log = sl.getLogger(method)\n const msg = `should log on level: ${level}`;\n (log as any)[method](msg)\n a.satisfies(sl.reporter.logs, [{ id: method, level: sl.toLogLevel(method), args: [msg] }])\n }\n\n async function assertNotLoggedAtLevel(sl: StandardLogForTest, method: string, level: number) {\n const log = sl.getLogger(method);\n (log as any)[method](`should not log on level: ${level}`)\n expect(sl.reporter.logs.length).toBe(0)\n }\n\n async function assertLoggedAtLocalLevel(sl: StandardLogForTest, method: LogMethodNames, localLevel: number) {\n const log = sl.getLogger(method, { level: localLevel })\n\n const msg = `should log on level: ${localLevel}`;\n (log as any)[method](msg)\n a.satisfies(sl.reporter.logs, [{ id: log.id, level: sl.toLogLevel(method), args: [msg] }])\n }\n\n async function assertNotLoggedAtLocalLevel(sl: StandardLogForTest, method: string, localLevel: number) {\n const log = sl.getLogger(method, { level: localLevel });\n (log as any)[method](`should not log on level: ${localLevel}`)\n expect(sl.reporter.logs.length).toBe(0)\n }\n\n async function assertLoggedAtCallLevel(sl: StandardLogForTest, method: string, callLevel: number) {\n const log = sl.getLogger(method)\n let actual = false\n log.on(callLevel, () => actual = true)\n expect(actual).toBe(true)\n }\n\n async function assertNotLoggedAtCallLevel(sl: StandardLogForTest, method: string, callLevel: number, actualLevel: number) {\n const log = sl.getLogger(method)\n log.on(callLevel, () => { throw new Error(`should not log at level ${actualLevel}`) })\n }\n\n async function assertLoggedAtCallLevelOverrideLocalLevel(sl: StandardLogForTest, method: string, localLevel: number, callLevel: number) {\n const log = sl.getLogger(method, { level: localLevel })\n let actual = false\n log.on(callLevel, () => actual = true)\n expect(actual).toBe(true)\n }\n\n async function assertNotLoggedAtCallLevelOverrideLocalLevel(sl: StandardLogForTest, method: string, localLevel: number, callLevel: number) {\n const log = sl.getLogger(method, { level: localLevel })\n log.on(callLevel, () => { throw new Error(`should not log at level ${localLevel}`) })\n }\n\n const shouldLog = wrapTest((test) => (method: LogMethodNames, level: number) => {\n const sl = createStandardLogForTest(level)\n const name = sl.toLogLevelName(level)\n test(`${method}() should log on level: ${name} (${level})`, () => {\n return assertLoggedAtLevel(sl, method, level)\n })\n })\n const shouldNotLog = wrapTest((test) => (method: string, level: number) => {\n const sl = createStandardLogForTest(level)\n const name = sl.toLogLevelName(level)\n test(`${method}() should not log on level: ${name} (${level})`, () => {\n return assertNotLoggedAtLevel(sl, method, level)\n })\n })\n\n const shouldLogWithLocalLevelOverride = wrapTest((test) => (method: LogMethodNames, localLevel: number) => {\n const localName = toLogLevelName(localLevel);\n [logLevels.none, logLevels.error, logLevels.warn, logLevels.info, logLevels.debug].forEach(globalLevel => {\n const globalName = toLogLevelName(globalLevel) || 'none'\n test(`${method}() should log on local level: ${localName} (${localLevel}) while global level: ${globalName} (${globalLevel})`, () => {\n const sl = createStandardLogForTest(globalLevel)\n return assertLoggedAtLocalLevel(sl, method, localLevel)\n })\n })\n })\n\n const shouldNotLogWithLocalLevelOverride = wrapTest((test) => (method: string, localLevel: number) => {\n const localName = toLogLevelName(localLevel);\n\n [logLevels.none, logLevels.error, logLevels.warn, logLevels.info, logLevels.debug].forEach(globalLevel => {\n const globalName = toLogLevelName(globalLevel) || 'none'\n test(`${method}() should not log on local level: ${localName} (${localLevel}) while global level: ${globalName} (${globalLevel})`, () => {\n const sl = createStandardLogForTest(globalLevel)\n return assertNotLoggedAtLocalLevel(sl, method, localLevel)\n })\n })\n })\n\n const shouldCallLogFunction = wrapTest((test) => (callLevel: number, actualLevel: number) => {\n const method = toLogLevelName(callLevel)\n const name = toLogLevelName(actualLevel)\n test(`${method}() should call log function on level: ${name} (${actualLevel})`, () => {\n const sl = createStandardLogForTest(actualLevel)\n return assertLoggedAtCallLevel(sl, method, callLevel)\n })\n })\n\n const shouldNotCallLogFunction = wrapTest((test) => (callLevel: number, actualLevel: number) => {\n const method = toLogLevelName(callLevel)\n const name = toLogLevelName(actualLevel)\n test(`${method}() should not call log function on level: ${name} (${actualLevel})`, () => {\n const sl = createStandardLogForTest(actualLevel)\n return assertNotLoggedAtCallLevel(sl, method, callLevel, actualLevel)\n })\n })\n\n const shouldCallLogFunctionWithLocalLevelOverride = wrapTest((test) => (callLevel: number, localLevel: number) => {\n const method = toLogLevelName(callLevel)\n const localName = toLogLevelName(localLevel);\n\n [logLevels.none, logLevels.error, logLevels.warn, logLevels.info, logLevels.debug].forEach(globalLevel => {\n const globalName = toLogLevelName(globalLevel) || 'none'\n test(`${method}() should log on local level: ${localName} (${localLevel}) while global level: ${globalName} (${globalLevel})`, () => {\n const sl = createStandardLogForTest(globalLevel)\n return assertLoggedAtCallLevelOverrideLocalLevel(sl, method, localLevel, callLevel)\n })\n })\n })\n\n const shouldNotCallLogFunctionWithLocalLevelOverride = wrapTest((test) => (callLevel: number, localLevel: number) => {\n const method = toLogLevelName(callLevel)\n const localName = toLogLevelName(localLevel);\n\n [logLevels.none, logLevels.error, logLevels.warn, logLevels.info, logLevels.debug].forEach(globalLevel => {\n const globalName = toLogLevelName(globalLevel) || 'none'\n test(`${method}() should not log on local level: ${localName} (${localLevel}) while global level: ${globalName} (${globalLevel})`, () => {\n const sl = createStandardLogForTest(globalLevel)\n return assertNotLoggedAtCallLevelOverrideLocalLevel(sl, method, localLevel, callLevel)\n })\n })\n })\n\n shouldNotLog('error', logLevels.none)\n shouldLog('error', logLevels.error)\n shouldLog('error', logLevels.warn)\n shouldLog('error', logLevels.info)\n shouldLog('error', logLevels.debug)\n shouldNotLogWithLocalLevelOverride('error', logLevels.none)\n shouldLogWithLocalLevelOverride('error', logLevels.error)\n shouldLogWithLocalLevelOverride('error', logLevels.warn)\n shouldLogWithLocalLevelOverride('error', logLevels.info)\n shouldLogWithLocalLevelOverride('error', logLevels.debug)\n\n shouldNotLog('warn', logLevels.none)\n shouldNotLog('warn', logLevels.error)\n shouldLog('warn', logLevels.warn)\n shouldLog('warn', logLevels.info)\n shouldLog('warn', logLevels.debug)\n shouldNotLogWithLocalLevelOverride('warn', logLevels.none)\n shouldNotLogWithLocalLevelOverride('warn', logLevels.error)\n shouldLogWithLocalLevelOverride('warn', logLevels.warn)\n shouldLogWithLocalLevelOverride('warn', logLevels.info)\n shouldLogWithLocalLevelOverride('warn', logLevels.debug)\n\n shouldNotLog('info', logLevels.none)\n shouldNotLog('info', logLevels.error)\n shouldNotLog('info', logLevels.warn)\n shouldLog('info', logLevels.info)\n shouldLog('info', logLevels.debug)\n shouldNotLogWithLocalLevelOverride('info', logLevels.none)\n shouldNotLogWithLocalLevelOverride('info', logLevels.error)\n shouldNotLogWithLocalLevelOverride('info', logLevels.warn)\n shouldLogWithLocalLevelOverride('info', logLevels.info)\n shouldLogWithLocalLevelOverride('info', logLevels.debug)\n\n shouldNotLog('debug', logLevels.none)\n shouldNotLog('debug', logLevels.error)\n shouldNotLog('debug', logLevels.warn)\n shouldNotLog('debug', logLevels.info)\n shouldLog('debug', logLevels.debug)\n shouldNotLogWithLocalLevelOverride('debug', logLevels.none)\n shouldNotLogWithLocalLevelOverride('debug', logLevels.error)\n shouldNotLogWithLocalLevelOverride('debug', logLevels.warn)\n shouldNotLogWithLocalLevelOverride('debug', logLevels.info)\n shouldLogWithLocalLevelOverride('debug', logLevels.debug)\n\n shouldNotCallLogFunction(logLevels.error, logLevels.none)\n shouldCallLogFunction(logLevels.error, logLevels.error)\n shouldCallLogFunction(logLevels.error, logLevels.warn)\n shouldCallLogFunction(logLevels.error, logLevels.info)\n shouldCallLogFunction(logLevels.error, logLevels.debug)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.error, logLevels.none)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.error, logLevels.error)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.error, logLevels.warn)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.error, logLevels.info)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.error, logLevels.debug)\n\n shouldNotCallLogFunction(logLevels.warn, logLevels.none)\n shouldNotCallLogFunction(logLevels.warn, logLevels.error)\n shouldCallLogFunction(logLevels.warn, logLevels.warn)\n shouldCallLogFunction(logLevels.warn, logLevels.info)\n shouldCallLogFunction(logLevels.warn, logLevels.debug)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.warn, logLevels.none)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.warn, logLevels.error)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.warn, logLevels.warn)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.warn, logLevels.info)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.warn, logLevels.debug)\n\n shouldNotCallLogFunction(logLevels.info, logLevels.none)\n shouldNotCallLogFunction(logLevels.info, logLevels.error)\n shouldNotCallLogFunction(logLevels.info, logLevels.warn)\n shouldCallLogFunction(logLevels.info, logLevels.info)\n shouldCallLogFunction(logLevels.info, logLevels.debug)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.info, logLevels.none)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.info, logLevels.error)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.info, logLevels.warn)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.info, logLevels.info)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.info, logLevels.debug)\n\n shouldNotCallLogFunction(logLevels.debug, logLevels.none)\n shouldNotCallLogFunction(logLevels.debug, logLevels.error)\n shouldNotCallLogFunction(logLevels.debug, logLevels.warn)\n shouldNotCallLogFunction(logLevels.debug, logLevels.info)\n shouldCallLogFunction(logLevels.debug, logLevels.debug)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.debug, logLevels.none)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.debug, logLevels.error)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.debug, logLevels.warn)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.debug, logLevels.info)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.debug, logLevels.debug)\n })\n\n it('writes entry directly', () => {\n const sl = createStandardLogForTest()\n const log = sl.getLogger('write-entry')\n const entry = { id: 'write-entry', level: logLevels.info, args: ['abc'], timestamp: new Date() }\n log.write(entry)\n a.satisfies(sl.reporter.logs, [entry])\n })\n test.each(['on', 'count', 'error', 'warn', 'info', 'debug'])('method %s is readonly', name => {\n const sl = createStandardLog()\n const log: any = sl.getLogger(`${name} is readonly`)\n\n a.throws(() => log[name] = true)\n })\n\n\n describe('on()', () => {\n it('log using log argument', () => {\n const sl = createStandardLogForTest()\n const logger = sl.getLogger('log on fn')\n logger.on('error', log => { log('value') })\n\n a.satisfies(sl.reporter.logs, [\n { id: 'log on fn', level: logLevels.error, args: ['value'] }\n ])\n })\n it('can take log level name in first argument', () => {\n const sl = createStandardLogForTest()\n const log = sl.getLogger('string-on')\n log.on('debug', () => { return })\n })\n })\n describe('count()', () => {\n test('will increment the counter', async () => {\n const sl = createStandardLogForTest()\n const logger = sl.getLogger('inc counter')\n\n logger.count()\n logger.count()\n\n a.satisfies(sl.reporter.logs, [\n { id: 'inc counter', level: logLevels.debug, args: [1] },\n { id: 'inc counter', level: logLevels.debug, args: [2] }\n ])\n })\n\n test('append args after the counter', async () => {\n const sl = createStandardLogForTest(logLevels.debug)\n const id = 'inc with args'\n const logger = sl.getLogger(id)\n logger.count('msg1', 'msg2')\n\n a.satisfies(sl.reporter.logs, [\n { id, level: logLevels.debug, args: [1, 'msg1', 'msg2'] }\n ])\n })\n\n test('not log if log level is less than debug', async () => {\n const sl = createStandardLogForTest(logLevels.debug - 1)\n const id = 'inc with args'\n const logger = sl.getLogger(id)\n logger.count('msg1', 'msg2')\n\n expect(sl.reporter.logs.length).toBe(0)\n })\n })\n\n test('logger with custom level', async () => {\n const mem = createMemoryLogReporter()\n const sl = createStandardLog({ customLevels: { 'cust_lvl': 100 }, reporters: [mem] })\n const logger = sl.getLogger('cust')\n logger.cust_lvl('a', 'b')\n\n a.satisfies(mem.logs, [{ id: 'cust', level: 100, args: ['a', 'b'] }])\n })\n\n describe('getLogger([,{ writeTo }])', () => {\n function testWriteTo(\n id: string, options: LoggerOptions,\n handler: (log: Logger, memLogs: LogEntry[], specialLogs: LogEntry[], sl: StandardLog) => void\n ) {\n const memReporter = createMemoryLogReporter()\n const specialReporter = createMemoryLogReporter({ id: 'special' })\n const sl = createStandardLog({ reporters: [memReporter, specialReporter] })\n\n const log = sl.getLogger(id, options)\n handler(log, memReporter.logs, specialReporter.logs, sl)\n }\n it('can specify which reporter to use by name', () => {\n testWriteTo('writeTo-string', { writeTo: 'special' }, (log, memLogs, specialLogs) => {\n log.error('error message')\n expect(memLogs.length).toEqual(0)\n expect(specialLogs.length).toEqual(1)\n })\n })\n it('can specify which reporter to use by regex', () => {\n testWriteTo('writeTo-regex', { writeTo: /^spec/ }, (log, memLogs, specialLogs) => {\n log.error('error message')\n expect(memLogs.length).toEqual(0)\n expect(specialLogs.length).toEqual(1)\n })\n })\n it('can specify which reporter to use by RegExp', () => {\n testWriteTo('writeTo-RegExp', { writeTo: new RegExp('^spec') }, (log, memLogs, specialLogs) => {\n log.error('error message')\n expect(memLogs.length).toEqual(0)\n expect(specialLogs.length).toEqual(1)\n })\n })\n it('can specify which reporter to use by function', () => {\n testWriteTo('writeTo-fn', { writeTo: id => id === 'special' },\n (log, memLogs, specialLogs) => {\n log.error('error message')\n expect(memLogs.length).toEqual(0)\n expect(specialLogs.length).toEqual(1)\n })\n })\n it('can specify custom reporter', () => {\n const reporter = createMemoryLogReporter({ id: 'custom mem' })\n testWriteTo('writeTo-reporter', { writeTo: reporter },\n (log, memLogs, specialLogs) => {\n log.error('error message')\n expect(memLogs.length).toEqual(0)\n expect(specialLogs.length).toEqual(0)\n expect(reporter.logs.length).toEqual(1)\n })\n })\n\n test('the custom console reporter cannot pick up logs from other loggers', () => {\n // if not, it would be a security issue as the new reporter\n // can capture the logs from other logger and send it elsewhere\n const reporter = createMemoryLogReporter({ id: 'custom mem' })\n testWriteTo('writeTo-reporter-no-override', { writeTo: reporter },\n (_, memLogs, specialLogs, sl) => {\n const log = sl.getLogger('writeTo-reporter-no-override-2')\n log.error('error message')\n\n expect(reporter.logs.length).toEqual(0)\n })\n })\n })\n})\n\ndescribe('suppressLogs()', () => {\n test('suppress log', () => {\n const sl = createStandardLogForTest()\n const log = sl.getLogger('l')\n suppressLogs(() => {\n log.alert('should not see me')\n }, log)\n\n expect(sl.reporter.getLogMessageWithLevel()).toBe('')\n })\n\n test('suppress multiple logs', () => {\n const sl = createStandardLogForTest()\n const log1 = sl.getLogger('l1')\n const log2 = sl.getLogger('l2')\n suppressLogs(() => {\n log1.alert('should not see me')\n log2.alert('should not see me too')\n }, log1, log2)\n expect(sl.reporter.getLogMessageWithLevel()).toBe('')\n })\n\n test('return block result', () => {\n const sl = createStandardLogForTest()\n const log1 = sl.getLogger('l')\n const log2 = sl.getLogger('l2')\n const a = suppressLogs(() => 1, log1, log2)\n expect(a).toBe(1)\n })\n})\n\ndescribe('getLogger()', () => {\n it('gets a logger that logs to console by default', () => {\n const log = getLogger('default')\n log.info('from global log, expected to be printed')\n })\n it('write to local reporter', () => {\n const reporter = createMemoryLogReporter()\n const log = getLogger('to local reporter', { writeTo: reporter })\n log.warn('hello')\n expect(reporter.logs.length).toBe(1)\n })\n})\n\ndescribe('configGlobal()', () => {\n beforeEach(() => {\n ctx.gsl = undefined\n ctx.configured = false\n })\n\n it('configure the global instance', () => {\n const mem = createMemoryLogReporter()\n configGlobal({ logLevel: logLevels.error, reporters: [mem] })\n\n const log = getLogger('default')\n log.error('error message')\n log.info('info message')\n expect(mem.logs.length).toBe(1)\n })\n\n it('can call after getLogger', () => {\n const log = getLogger('default')\n log.info('from global log, expected to be printed')\n\n const mem = createMemoryLogReporter()\n configGlobal({ logLevel: logLevels.error, reporters: [mem] })\n log.error('from global log, expected to be printed')\n log.info('from global log, this should not be printed')\n expect(mem.logs.length).toBe(1)\n })\n\n it('will emit a warning when called twice', () => {\n const mem = createMemoryLogReporter()\n configGlobal({ reporters: [mem] })\n configGlobal({ reporters: [] })\n a.satisfies(mem.logs, [{ id: 'standard-log', level: logLevels.warn, args: [/being called more than once/] }])\n })\n\n it('remove existing reporter', () => {\n const log = getLogger('default')\n log.info('from global log, expected to be printed')\n\n const mem = createMemoryLogReporter()\n configGlobal({ logLevel: logLevels.error, reporters: [mem] })\n\n const reporters = ctx.gsl?.store.reporters\n expect(reporters).toEqual([mem])\n })\n})\n"]}
|
|
1
|
+
{"version":3,"file":"standardLog.spec.js","sourceRoot":"","sources":["../ts/standardLog.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { assertron as a } from 'assertron'\nimport { InvalidId } from './errors.js'\nimport { createStandardLog, createStandardLogForTest, getLogger, StandardLog, suppressLogs } from './index.js'\nimport { logLevels, toLogLevelName } from './logLevels.js'\nimport { createMemoryLogReporter, createMemoryWithConsoleLogReporter } from './memory.js'\nimport { configGlobal, ctx, StandardLogForTest } from './standardLog.js'\nimport { assertSSF, wrapTest } from './testUtil.js'\nimport { LogEntry, Logger, LoggerOptions, LogMethodNames, StandardLogOptions } from './types.js'\n\ndescribe('createStandardLog()', () => {\n describe('logLevel', () => {\n it('is default to info', () => {\n const actual = createStandardLog()\n expect(actual.logLevel).toBe(logLevels.info)\n })\n it('is readonly', () => {\n const actual = createStandardLog()\n a.throws(() => (actual as any).logLevel = logLevels.planck, err => /only a getter/.test(err))\n })\n it('set logLevel from options', () => {\n const actual = createStandardLog({ logLevel: logLevels.planck })\n expect(actual.logLevel).toBe(logLevels.planck)\n })\n })\n\n describe('custom levels', () => {\n it('can define custom levels', () => {\n const actual = createStandardLog({ customLevels: { urgent: 80 } })\n\n expect(actual.toLogLevelName(80)).toBe('urgent')\n })\n })\n\n describe('reporters', () => {\n it('can specify reporter', () => {\n const mem = createMemoryLogReporter()\n const sl = createStandardLog({ reporters: [mem] })\n const log = sl.getLogger('x')\n log.notice('abc')\n expect(mem.logs.length).toBe(1)\n })\n\n it('all reporters must have an id', () => {\n const reporter = createMemoryLogReporter({ id: '' })\n createStandardLog({ reporters: [reporter] })\n\n a.satisfies(reporter.logs, [{\n id: 'standard-log',\n level: logLevels.critical,\n args: [`Detected reporter with empty id. This is not allowed as it will create problems with feature like 'getNonConsoleLogger()'. Please add an id to your reporter.`]\n }])\n })\n\n })\n\n describe('related to global', () => {\n beforeEach(() => {\n ctx.gsl = undefined\n ctx.configured = false\n })\n it('will affect getLogger() if configGlobal() is not called', () => {\n createStandardLog({ logLevel: logLevels.planck })\n expect(ctx.gsl?.standardLog.logLevel).toBe(logLevels.planck)\n })\n })\n})\n\ndescribe('createStandardLogForTest()', () => {\n it('returns with memory reporter', () => {\n const { reporter } = createStandardLogForTest()\n expect(reporter.getLogMessageWithLevel()).toBe('')\n })\n\n it('defaults to debug', () => {\n const store = createStandardLogForTest()\n expect(store.logLevel).toBe(logLevels.debug)\n })\n})\n\ndescribe('standardLog.getLogger()', () => {\n /**\n * The logger id does not allow all characters due to security concerns.\n * Since we have no control over where the logs will be written to,\n * the could be a case that the ID is being used to exploit those environment.\n * So keeping the supported characters in sane way helps mitigates the risk.\n */\n it('supports id with alphanumeric and :_-.', () => {\n const sl = createStandardLog()\n sl.getLogger('abcdefghijklmnopqrstuvwxyz:-_.1234567890')\n })\n it('supports id with unicode', () => {\n const sl = createStandardLog()\n sl.getLogger('ミク香港')\n })\n it('supports id with @, \\\\ and /', () => {\n const sl = createStandardLog()\n sl.getLogger('@unional/fixture')\n sl.getLogger(`a\\\\b\\\\c`)\n })\n it('supports id with space', () => {\n const sl = createStandardLog()\n sl.getLogger('hello world')\n })\n it.each('`~!#$%^&*()=+|[]{}<>,?'.split(''))('throws if id has unsupported character %s', (char: string) => {\n const sl = createStandardLog()\n a.throws(() => sl.getLogger(char), InvalidId)\n })\n it('throw InvalidId with ssf to the call site', () => {\n const sl = createStandardLog()\n const err = a.throws(() => sl.getLogger('!'), InvalidId)\n\n assertSSF(err, __filename)\n })\n test('id is readonly', () => {\n const sl = createStandardLog()\n const log: any = sl.getLogger('id is readonly')\n a.throws(() => log.id = 'b')\n })\n\n test('get logger with same name gets the same instance', () => {\n const sl = createStandardLog()\n const expected = sl.getLogger('same-inst')\n const actual = sl.getLogger('same-inst')\n expect(actual).toBe(expected)\n })\n\n it('can specify local log level', () => {\n const sl = createStandardLog()\n const log = sl.getLogger('local', { level: logLevels.trace })\n expect(log.level).toBe(logLevels.trace)\n })\n\n test('new logger will get custom level', () => {\n const sl = createStandardLog({ customLevels: { 'to_logger': 1234 } })\n const actual = sl.getLogger('to_logger_logger')\n expect(typeof actual.to_logger).toBe('function')\n })\n\n it('needs to cast Logger when wrapped', () => {\n function wrapper<N extends string = LogMethodNames>(options: StandardLogOptions<N>) {\n const sl = createStandardLog<N>(options)\n const log = sl.getLogger('local')\n expect(log.info).toBeDefined()\n return sl\n }\n\n const sl = wrapper({ customLevels: { 'cust': 123 } })\n const actual = sl.getLogger('c')\n expect(actual.cust).toBeDefined()\n\n // make sure the logger outside also get default log methods\n expect(actual.error).toBeDefined()\n })\n\n describe('log levels', () => {\n async function assertLoggedAtLevel(sl: StandardLogForTest, method: LogMethodNames, level: number) {\n const log = sl.getLogger(method)\n const msg = `should log on level: ${level}`;\n (log as any)[method](msg)\n a.satisfies(sl.reporter.logs, [{ id: method, level: sl.toLogLevel(method), args: [msg] }])\n }\n\n async function assertNotLoggedAtLevel(sl: StandardLogForTest, method: string, level: number) {\n const log = sl.getLogger(method);\n (log as any)[method](`should not log on level: ${level}`)\n expect(sl.reporter.logs.length).toBe(0)\n }\n\n async function assertLoggedAtLocalLevel(sl: StandardLogForTest, method: LogMethodNames, localLevel: number) {\n const log = sl.getLogger(method, { level: localLevel })\n\n const msg = `should log on level: ${localLevel}`;\n (log as any)[method](msg)\n a.satisfies(sl.reporter.logs, [{ id: log.id, level: sl.toLogLevel(method), args: [msg] }])\n }\n\n async function assertNotLoggedAtLocalLevel(sl: StandardLogForTest, method: string, localLevel: number) {\n const log = sl.getLogger(method, { level: localLevel });\n (log as any)[method](`should not log on level: ${localLevel}`)\n expect(sl.reporter.logs.length).toBe(0)\n }\n\n async function assertLoggedAtCallLevel(sl: StandardLogForTest, method: string, callLevel: number) {\n const log = sl.getLogger(method)\n let actual = false\n log.on(callLevel, () => actual = true)\n expect(actual).toBe(true)\n }\n\n async function assertNotLoggedAtCallLevel(sl: StandardLogForTest, method: string, callLevel: number, actualLevel: number) {\n const log = sl.getLogger(method)\n log.on(callLevel, () => { throw new Error(`should not log at level ${actualLevel}`) })\n }\n\n async function assertLoggedAtCallLevelOverrideLocalLevel(sl: StandardLogForTest, method: string, localLevel: number, callLevel: number) {\n const log = sl.getLogger(method, { level: localLevel })\n let actual = false\n log.on(callLevel, () => actual = true)\n expect(actual).toBe(true)\n }\n\n async function assertNotLoggedAtCallLevelOverrideLocalLevel(sl: StandardLogForTest, method: string, localLevel: number, callLevel: number) {\n const log = sl.getLogger(method, { level: localLevel })\n log.on(callLevel, () => { throw new Error(`should not log at level ${localLevel}`) })\n }\n\n const shouldLog = wrapTest((test) => (method: LogMethodNames, level: number) => {\n const sl = createStandardLogForTest(level)\n const name = sl.toLogLevelName(level)\n test(`${method}() should log on level: ${name} (${level})`, () => {\n return assertLoggedAtLevel(sl, method, level)\n })\n })\n const shouldNotLog = wrapTest((test) => (method: string, level: number) => {\n const sl = createStandardLogForTest(level)\n const name = sl.toLogLevelName(level)\n test(`${method}() should not log on level: ${name} (${level})`, () => {\n return assertNotLoggedAtLevel(sl, method, level)\n })\n })\n\n const shouldLogWithLocalLevelOverride = wrapTest((test) => (method: LogMethodNames, localLevel: number) => {\n const localName = toLogLevelName(localLevel);\n [logLevels.none, logLevels.error, logLevels.warn, logLevels.info, logLevels.debug].forEach(globalLevel => {\n const globalName = toLogLevelName(globalLevel) || 'none'\n test(`${method}() should log on local level: ${localName} (${localLevel}) while global level: ${globalName} (${globalLevel})`, () => {\n const sl = createStandardLogForTest(globalLevel)\n return assertLoggedAtLocalLevel(sl, method, localLevel)\n })\n })\n })\n\n const shouldNotLogWithLocalLevelOverride = wrapTest((test) => (method: string, localLevel: number) => {\n const localName = toLogLevelName(localLevel);\n\n [logLevels.none, logLevels.error, logLevels.warn, logLevels.info, logLevels.debug].forEach(globalLevel => {\n const globalName = toLogLevelName(globalLevel) || 'none'\n test(`${method}() should not log on local level: ${localName} (${localLevel}) while global level: ${globalName} (${globalLevel})`, () => {\n const sl = createStandardLogForTest(globalLevel)\n return assertNotLoggedAtLocalLevel(sl, method, localLevel)\n })\n })\n })\n\n const shouldCallLogFunction = wrapTest((test) => (callLevel: number, actualLevel: number) => {\n const method = toLogLevelName(callLevel)\n const name = toLogLevelName(actualLevel)\n test(`${method}() should call log function on level: ${name} (${actualLevel})`, () => {\n const sl = createStandardLogForTest(actualLevel)\n return assertLoggedAtCallLevel(sl, method, callLevel)\n })\n })\n\n const shouldNotCallLogFunction = wrapTest((test) => (callLevel: number, actualLevel: number) => {\n const method = toLogLevelName(callLevel)\n const name = toLogLevelName(actualLevel)\n test(`${method}() should not call log function on level: ${name} (${actualLevel})`, () => {\n const sl = createStandardLogForTest(actualLevel)\n return assertNotLoggedAtCallLevel(sl, method, callLevel, actualLevel)\n })\n })\n\n const shouldCallLogFunctionWithLocalLevelOverride = wrapTest((test) => (callLevel: number, localLevel: number) => {\n const method = toLogLevelName(callLevel)\n const localName = toLogLevelName(localLevel);\n\n [logLevels.none, logLevels.error, logLevels.warn, logLevels.info, logLevels.debug].forEach(globalLevel => {\n const globalName = toLogLevelName(globalLevel) || 'none'\n test(`${method}() should log on local level: ${localName} (${localLevel}) while global level: ${globalName} (${globalLevel})`, () => {\n const sl = createStandardLogForTest(globalLevel)\n return assertLoggedAtCallLevelOverrideLocalLevel(sl, method, localLevel, callLevel)\n })\n })\n })\n\n const shouldNotCallLogFunctionWithLocalLevelOverride = wrapTest((test) => (callLevel: number, localLevel: number) => {\n const method = toLogLevelName(callLevel)\n const localName = toLogLevelName(localLevel);\n\n [logLevels.none, logLevels.error, logLevels.warn, logLevels.info, logLevels.debug].forEach(globalLevel => {\n const globalName = toLogLevelName(globalLevel) || 'none'\n test(`${method}() should not log on local level: ${localName} (${localLevel}) while global level: ${globalName} (${globalLevel})`, () => {\n const sl = createStandardLogForTest(globalLevel)\n return assertNotLoggedAtCallLevelOverrideLocalLevel(sl, method, localLevel, callLevel)\n })\n })\n })\n\n shouldNotLog('error', logLevels.none)\n shouldLog('error', logLevels.error)\n shouldLog('error', logLevels.warn)\n shouldLog('error', logLevels.info)\n shouldLog('error', logLevels.debug)\n shouldNotLogWithLocalLevelOverride('error', logLevels.none)\n shouldLogWithLocalLevelOverride('error', logLevels.error)\n shouldLogWithLocalLevelOverride('error', logLevels.warn)\n shouldLogWithLocalLevelOverride('error', logLevels.info)\n shouldLogWithLocalLevelOverride('error', logLevels.debug)\n\n shouldNotLog('warn', logLevels.none)\n shouldNotLog('warn', logLevels.error)\n shouldLog('warn', logLevels.warn)\n shouldLog('warn', logLevels.info)\n shouldLog('warn', logLevels.debug)\n shouldNotLogWithLocalLevelOverride('warn', logLevels.none)\n shouldNotLogWithLocalLevelOverride('warn', logLevels.error)\n shouldLogWithLocalLevelOverride('warn', logLevels.warn)\n shouldLogWithLocalLevelOverride('warn', logLevels.info)\n shouldLogWithLocalLevelOverride('warn', logLevels.debug)\n\n shouldNotLog('info', logLevels.none)\n shouldNotLog('info', logLevels.error)\n shouldNotLog('info', logLevels.warn)\n shouldLog('info', logLevels.info)\n shouldLog('info', logLevels.debug)\n shouldNotLogWithLocalLevelOverride('info', logLevels.none)\n shouldNotLogWithLocalLevelOverride('info', logLevels.error)\n shouldNotLogWithLocalLevelOverride('info', logLevels.warn)\n shouldLogWithLocalLevelOverride('info', logLevels.info)\n shouldLogWithLocalLevelOverride('info', logLevels.debug)\n\n shouldNotLog('debug', logLevels.none)\n shouldNotLog('debug', logLevels.error)\n shouldNotLog('debug', logLevels.warn)\n shouldNotLog('debug', logLevels.info)\n shouldLog('debug', logLevels.debug)\n shouldNotLogWithLocalLevelOverride('debug', logLevels.none)\n shouldNotLogWithLocalLevelOverride('debug', logLevels.error)\n shouldNotLogWithLocalLevelOverride('debug', logLevels.warn)\n shouldNotLogWithLocalLevelOverride('debug', logLevels.info)\n shouldLogWithLocalLevelOverride('debug', logLevels.debug)\n\n shouldNotCallLogFunction(logLevels.error, logLevels.none)\n shouldCallLogFunction(logLevels.error, logLevels.error)\n shouldCallLogFunction(logLevels.error, logLevels.warn)\n shouldCallLogFunction(logLevels.error, logLevels.info)\n shouldCallLogFunction(logLevels.error, logLevels.debug)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.error, logLevels.none)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.error, logLevels.error)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.error, logLevels.warn)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.error, logLevels.info)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.error, logLevels.debug)\n\n shouldNotCallLogFunction(logLevels.warn, logLevels.none)\n shouldNotCallLogFunction(logLevels.warn, logLevels.error)\n shouldCallLogFunction(logLevels.warn, logLevels.warn)\n shouldCallLogFunction(logLevels.warn, logLevels.info)\n shouldCallLogFunction(logLevels.warn, logLevels.debug)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.warn, logLevels.none)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.warn, logLevels.error)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.warn, logLevels.warn)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.warn, logLevels.info)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.warn, logLevels.debug)\n\n shouldNotCallLogFunction(logLevels.info, logLevels.none)\n shouldNotCallLogFunction(logLevels.info, logLevels.error)\n shouldNotCallLogFunction(logLevels.info, logLevels.warn)\n shouldCallLogFunction(logLevels.info, logLevels.info)\n shouldCallLogFunction(logLevels.info, logLevels.debug)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.info, logLevels.none)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.info, logLevels.error)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.info, logLevels.warn)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.info, logLevels.info)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.info, logLevels.debug)\n\n shouldNotCallLogFunction(logLevels.debug, logLevels.none)\n shouldNotCallLogFunction(logLevels.debug, logLevels.error)\n shouldNotCallLogFunction(logLevels.debug, logLevels.warn)\n shouldNotCallLogFunction(logLevels.debug, logLevels.info)\n shouldCallLogFunction(logLevels.debug, logLevels.debug)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.debug, logLevels.none)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.debug, logLevels.error)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.debug, logLevels.warn)\n shouldNotCallLogFunctionWithLocalLevelOverride(logLevels.debug, logLevels.info)\n shouldCallLogFunctionWithLocalLevelOverride(logLevels.debug, logLevels.debug)\n })\n\n it('writes entry directly', () => {\n const sl = createStandardLogForTest()\n const log = sl.getLogger('write-entry')\n const entry = { id: 'write-entry', level: logLevels.info, args: ['abc'], timestamp: new Date() }\n log.write(entry)\n a.satisfies(sl.reporter.logs, [entry])\n })\n test.each(['on', 'count', 'error', 'warn', 'info', 'debug'])('method %s is readonly', name => {\n const sl = createStandardLog()\n const log: any = sl.getLogger(`${name} is readonly`)\n\n a.throws(() => log[name] = true)\n })\n\n\n describe('on()', () => {\n it('log using log argument', () => {\n const sl = createStandardLogForTest()\n const logger = sl.getLogger('log on fn')\n logger.on('error', log => { log('value') })\n\n a.satisfies(sl.reporter.logs, [\n { id: 'log on fn', level: logLevels.error, args: ['value'] }\n ])\n })\n it('can take log level name in first argument', () => {\n const sl = createStandardLogForTest()\n const log = sl.getLogger('string-on')\n log.on('debug', () => { return })\n })\n })\n describe('count()', () => {\n test('will increment the counter', async () => {\n const sl = createStandardLogForTest()\n const logger = sl.getLogger('inc counter')\n\n logger.count()\n logger.count()\n\n a.satisfies(sl.reporter.logs, [\n { id: 'inc counter', level: logLevels.debug, args: [1] },\n { id: 'inc counter', level: logLevels.debug, args: [2] }\n ])\n })\n\n test('append args after the counter', async () => {\n const sl = createStandardLogForTest(logLevels.debug)\n const id = 'inc with args'\n const logger = sl.getLogger(id)\n logger.count('msg1', 'msg2')\n\n a.satisfies(sl.reporter.logs, [\n { id, level: logLevels.debug, args: [1, 'msg1', 'msg2'] }\n ])\n })\n\n test('not log if log level is less than debug', async () => {\n const sl = createStandardLogForTest(logLevels.debug - 1)\n const id = 'inc with args'\n const logger = sl.getLogger(id)\n logger.count('msg1', 'msg2')\n\n expect(sl.reporter.logs.length).toBe(0)\n })\n })\n\n test('logger with custom level', async () => {\n const mem = createMemoryLogReporter()\n const sl = createStandardLog({ customLevels: { 'cust_lvl': 100 }, reporters: [mem] })\n const logger = sl.getLogger('cust')\n logger.cust_lvl('a', 'b')\n\n a.satisfies(mem.logs, [{ id: 'cust', level: 100, args: ['a', 'b'] }])\n })\n\n describe('getLogger([,{ writeTo }])', () => {\n function testWriteTo(\n id: string, options: LoggerOptions,\n handler: (log: Logger, memLogs: LogEntry[], specialLogs: LogEntry[], sl: StandardLog) => void\n ) {\n const memReporter = createMemoryLogReporter()\n const specialReporter = createMemoryLogReporter({ id: 'special' })\n const sl = createStandardLog({ reporters: [memReporter, specialReporter] })\n\n const log = sl.getLogger(id, options)\n handler(log, memReporter.logs, specialReporter.logs, sl)\n }\n it('can specify which reporter to use by name', () => {\n testWriteTo('writeTo-string', { writeTo: 'special' }, (log, memLogs, specialLogs) => {\n log.error('error message')\n expect(memLogs.length).toEqual(0)\n expect(specialLogs.length).toEqual(1)\n })\n })\n it('can specify which reporter to use by regex', () => {\n testWriteTo('writeTo-regex', { writeTo: /^spec/ }, (log, memLogs, specialLogs) => {\n log.error('error message')\n expect(memLogs.length).toEqual(0)\n expect(specialLogs.length).toEqual(1)\n })\n })\n it('can specify which reporter to use by RegExp', () => {\n testWriteTo('writeTo-RegExp', { writeTo: new RegExp('^spec') }, (log, memLogs, specialLogs) => {\n log.error('error message')\n expect(memLogs.length).toEqual(0)\n expect(specialLogs.length).toEqual(1)\n })\n })\n it('can specify which reporter to use by function', () => {\n testWriteTo('writeTo-fn', { writeTo: id => id === 'special' },\n (log, memLogs, specialLogs) => {\n log.error('error message')\n expect(memLogs.length).toEqual(0)\n expect(specialLogs.length).toEqual(1)\n })\n })\n it('can specify custom reporter', () => {\n const reporter = createMemoryLogReporter({ id: 'custom mem' })\n testWriteTo('writeTo-reporter', { writeTo: reporter },\n (log, memLogs, specialLogs) => {\n log.error('error message')\n expect(memLogs.length).toEqual(0)\n expect(specialLogs.length).toEqual(0)\n expect(reporter.logs.length).toEqual(1)\n })\n })\n\n test('the custom console reporter cannot pick up logs from other loggers', () => {\n // if not, it would be a security issue as the new reporter\n // can capture the logs from other logger and send it elsewhere\n const reporter = createMemoryLogReporter({ id: 'custom mem' })\n testWriteTo('writeTo-reporter-no-override', { writeTo: reporter },\n (_, memLogs, specialLogs, sl) => {\n const log = sl.getLogger('writeTo-reporter-no-override-2')\n log.error('error message')\n\n expect(reporter.logs.length).toEqual(0)\n })\n })\n })\n})\n\ndescribe('suppressLogs()', () => {\n test('suppress log', () => {\n const sl = createStandardLogForTest()\n const log = sl.getLogger('l')\n suppressLogs(() => {\n log.alert('should not see me')\n }, log)\n\n expect(sl.reporter.getLogMessageWithLevel()).toBe('')\n })\n\n test('suppress multiple logs', () => {\n const sl = createStandardLogForTest()\n const log1 = sl.getLogger('l1')\n const log2 = sl.getLogger('l2')\n suppressLogs(() => {\n log1.alert('should not see me')\n log2.alert('should not see me too')\n }, log1, log2)\n expect(sl.reporter.getLogMessageWithLevel()).toBe('')\n })\n\n test('return block result', () => {\n const sl = createStandardLogForTest()\n const log1 = sl.getLogger('l')\n const log2 = sl.getLogger('l2')\n const a = suppressLogs(() => 1, log1, log2)\n expect(a).toBe(1)\n })\n})\n\ndescribe('getLogger()', () => {\n it('gets a logger that logs to console by default', () => {\n const log = getLogger('default')\n log.info('from global log, expected to be printed')\n })\n it('write to local reporter', () => {\n const reporter = createMemoryLogReporter()\n const log = getLogger('to local reporter', { writeTo: reporter })\n log.warn('hello')\n expect(reporter.logs.length).toBe(1)\n })\n})\n\ndescribe('configGlobal()', () => {\n beforeEach(() => {\n ctx.gsl = undefined\n ctx.configured = false\n })\n\n it('configure the global instance', () => {\n const mem = createMemoryLogReporter()\n configGlobal({ logLevel: logLevels.error, reporters: [mem] })\n\n const log = getLogger('default')\n log.error('error message')\n log.info('info message')\n expect(mem.logs.length).toBe(1)\n })\n\n it('can call after getLogger', () => {\n const log = getLogger('default')\n log.info('from global log, expected to be printed')\n\n const mem = createMemoryLogReporter()\n configGlobal({ logLevel: logLevels.error, reporters: [mem] })\n log.error('from global log, expected to be printed')\n log.info('from global log, this should not be printed')\n expect(mem.logs.length).toBe(1)\n })\n\n it('will emit a warning when called twice', () => {\n const mem = createMemoryLogReporter()\n configGlobal({ reporters: [mem] })\n configGlobal({ reporters: [] })\n a.satisfies(mem.logs, [{ id: 'standard-log', level: logLevels.warn, args: [/being called more than once/] }])\n })\n\n it('remove existing reporter', () => {\n const log = getLogger('default')\n log.info('from global log, expected to be printed')\n\n const mem = createMemoryLogReporter()\n configGlobal({ logLevel: logLevels.error, reporters: [mem] })\n\n const reporters = ctx.gsl?.store.reporters\n expect(reporters).toEqual([mem])\n })\n})\n\ndescribe('getNonConsoleLogger()', () => {\n it('will not write to console', () => {\n const memory = createMemoryLogReporter()\n const c = createMemoryWithConsoleLogReporter()\n const sl = createStandardLog({ reporters: [memory, c] })\n const log = sl.getNonConsoleLogger('non-console')\n\n log.info('should not see this')\n expect(c.logs).toEqual([])\n })\n\n it('no non-console reporter should get logger with noop', () => {\n const reporter = createMemoryWithConsoleLogReporter()\n const sl = createStandardLog({ reporters: [reporter] })\n const log = sl.getNonConsoleLogger('non-console')\n\n log.emergency('should not see this')\n log.alert('should not see this')\n log.critical('should not see this')\n log.error('should not see this')\n log.warn('should not see this')\n log.notice('should not see this')\n log.info('should not see this')\n log.debug('should not see this')\n log.trace('should not see this')\n log.planck('should not see this')\n log.count('should not see this')\n log.write({ id: 'x', args: ['y'], level: logLevels.alert, timestamp: new Date() })\n log.on(logLevels.emergency, () => 'should not see this')\n\n expect(reporter.logs).toEqual([])\n })\n\n it('with existing id should fail', () => {\n const memory = createMemoryLogReporter()\n const c = createMemoryWithConsoleLogReporter()\n const sl = createStandardLog({ reporters: [memory, c] })\n sl.getLogger('exist-expected to see')\n const log = sl.getNonConsoleLogger('exist-expected to see')\n log.error('should not see this')\n\n a.satisfies(memory.logs, [{\n id: 'standard-log',\n args: [`attempt to create a non-console logger with existing id ('exist-expected to see'), ignoring`],\n level: logLevels.warn\n }])\n })\n\n it('will get the same non-console logger if spplies with the same name', () => {\n const sl = createStandardLogForTest()\n const logA = sl.getNonConsoleLogger('non-console')\n const logB = sl.getNonConsoleLogger('non-console')\n\n expect(logA).toStrictEqual(logB)\n })\n})\n"]}
|
package/dist/standard-log.es5.js
CHANGED
|
@@ -6073,43 +6073,63 @@ exports.logLevels = {
|
|
|
6073
6073
|
none: 0,
|
|
6074
6074
|
/**
|
|
6075
6075
|
* emergency: 100
|
|
6076
|
+
*
|
|
6077
|
+
* emergency -> alert
|
|
6076
6078
|
*/
|
|
6077
6079
|
emergency: 100,
|
|
6078
6080
|
/**
|
|
6079
6081
|
* alert: 200
|
|
6082
|
+
*
|
|
6083
|
+
* emergency -> alert -> critical
|
|
6080
6084
|
*/
|
|
6081
6085
|
alert: 200,
|
|
6082
6086
|
/**
|
|
6083
6087
|
* critical: 300
|
|
6088
|
+
*
|
|
6089
|
+
* alert -> critical -> error
|
|
6084
6090
|
*/
|
|
6085
6091
|
critical: 300,
|
|
6086
6092
|
/**
|
|
6087
6093
|
* error: 400
|
|
6094
|
+
*
|
|
6095
|
+
* critical -> error -> warn
|
|
6088
6096
|
*/
|
|
6089
6097
|
error: 400,
|
|
6090
6098
|
/**
|
|
6091
6099
|
* warn: 500
|
|
6100
|
+
*
|
|
6101
|
+
* error -> warn -> notice
|
|
6092
6102
|
*/
|
|
6093
6103
|
warn: 500,
|
|
6094
6104
|
/**
|
|
6095
6105
|
* notice: 600
|
|
6106
|
+
*
|
|
6107
|
+
* warn -> notice -> info
|
|
6096
6108
|
*/
|
|
6097
6109
|
notice: 600,
|
|
6098
6110
|
/**
|
|
6099
6111
|
* info: 700
|
|
6112
|
+
*
|
|
6113
|
+
* notice -> info -> debug
|
|
6100
6114
|
*/
|
|
6101
6115
|
info: 700,
|
|
6102
6116
|
/**
|
|
6103
6117
|
* debug: 800
|
|
6118
|
+
*
|
|
6119
|
+
* info -> debug -> trace
|
|
6104
6120
|
*/
|
|
6105
6121
|
debug: 800,
|
|
6106
6122
|
/**
|
|
6107
6123
|
* trace: 900
|
|
6124
|
+
*
|
|
6125
|
+
* debug -> trace -> planck
|
|
6108
6126
|
*/
|
|
6109
6127
|
trace: 900,
|
|
6110
6128
|
/**
|
|
6111
6129
|
* planck: Infinity
|
|
6112
6130
|
* `planck unit` is a very small unit <https://en.wikipedia.org/wiki/Planck_units>.
|
|
6131
|
+
*
|
|
6132
|
+
* trace -> planck
|
|
6113
6133
|
*/
|
|
6114
6134
|
planck: Infinity,
|
|
6115
6135
|
/**
|
|
@@ -6180,7 +6200,8 @@ var console_js_1 = __webpack_require__(/*! ./console.js */ "./ts/console.ts");
|
|
|
6180
6200
|
var logLevels_js_1 = __webpack_require__(/*! ./logLevels.js */ "./ts/logLevels.ts");
|
|
6181
6201
|
function createLogStore(options) {
|
|
6182
6202
|
return {
|
|
6183
|
-
loggers:
|
|
6203
|
+
loggers: (0, type_plus_1.record)(),
|
|
6204
|
+
nonConsoleLoggers: (0, type_plus_1.record)(),
|
|
6184
6205
|
reporters: options.reporters || [(0, console_js_1.createConsoleLogReporter)()],
|
|
6185
6206
|
logLevel: options.logLevel,
|
|
6186
6207
|
logLevelStore: logLevelStore(options)
|
|
@@ -6188,7 +6209,7 @@ function createLogStore(options) {
|
|
|
6188
6209
|
}
|
|
6189
6210
|
exports.createLogStore = createLogStore;
|
|
6190
6211
|
function logLevelStore(options) {
|
|
6191
|
-
var customLevels = options.customLevels ||
|
|
6212
|
+
var customLevels = options.customLevels || (0, type_plus_1.record)();
|
|
6192
6213
|
var store = {
|
|
6193
6214
|
customLevels: customLevels,
|
|
6194
6215
|
customLevelsReverse: (0, type_plus_1.reduceByKey)(customLevels, function (p, k) {
|
|
@@ -6336,7 +6357,7 @@ function shouldLog(store, targetLevel, loggerLevel) {
|
|
|
6336
6357
|
"use strict";
|
|
6337
6358
|
|
|
6338
6359
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
6339
|
-
exports.createMemoryLogReporter = exports.toMessageWithLevel = void 0;
|
|
6360
|
+
exports.createMemoryWithConsoleLogReporter = exports.createMemoryLogReporter = exports.toMessageWithLevel = void 0;
|
|
6340
6361
|
var type_plus_1 = __webpack_require__(/*! type-plus */ "../../node_modules/.pnpm/type-plus@4.13.1/node_modules/type-plus/cjs/index.js");
|
|
6341
6362
|
var platform_js_1 = __webpack_require__(/*! ./platform.js */ "./ts/platform.browser.ts");
|
|
6342
6363
|
var formatter_js_1 = __webpack_require__(/*! ./formatter.js */ "./ts/formatter.ts");
|
|
@@ -6352,9 +6373,13 @@ function toMessageWithLevel(logs) {
|
|
|
6352
6373
|
}
|
|
6353
6374
|
exports.toMessageWithLevel = toMessageWithLevel;
|
|
6354
6375
|
function createMemoryLogReporter(options) {
|
|
6376
|
+
return Object.freeze(buildMemoryReporter((0, type_plus_1.unpartial)({ id: 'memory' }, options)));
|
|
6377
|
+
}
|
|
6378
|
+
exports.createMemoryLogReporter = createMemoryLogReporter;
|
|
6379
|
+
function buildMemoryReporter(options) {
|
|
6355
6380
|
var _a = (0, type_plus_1.required)({ id: 'memory', formatter: function (e) { return e; } }, options), id = _a.id, formatter = _a.formatter, filter = _a.filter;
|
|
6356
6381
|
var logs = [];
|
|
6357
|
-
return
|
|
6382
|
+
return {
|
|
6358
6383
|
id: id,
|
|
6359
6384
|
get formatter() { return formatter; },
|
|
6360
6385
|
get filter() { return filter; },
|
|
@@ -6383,9 +6408,14 @@ function createMemoryLogReporter(options) {
|
|
|
6383
6408
|
var reporter = (0, console_js_1.createConsoleLogReporter)();
|
|
6384
6409
|
logs.forEach(function (l) { return reporter.write(l); });
|
|
6385
6410
|
}
|
|
6386
|
-
}
|
|
6411
|
+
};
|
|
6387
6412
|
}
|
|
6388
|
-
|
|
6413
|
+
function createMemoryWithConsoleLogReporter(options) {
|
|
6414
|
+
return Object.freeze(Object.assign(buildMemoryReporter((0, type_plus_1.unpartial)({ id: 'memory-with-console' }, options)), {
|
|
6415
|
+
isConsoleReporter: true
|
|
6416
|
+
}));
|
|
6417
|
+
}
|
|
6418
|
+
exports.createMemoryWithConsoleLogReporter = createMemoryWithConsoleLogReporter;
|
|
6389
6419
|
|
|
6390
6420
|
|
|
6391
6421
|
/***/ }),
|
|
@@ -6394,15 +6424,16 @@ exports.createMemoryLogReporter = createMemoryLogReporter;
|
|
|
6394
6424
|
/*!********************************!*\
|
|
6395
6425
|
!*** ./ts/platform.browser.ts ***!
|
|
6396
6426
|
\********************************/
|
|
6397
|
-
/***/ (function(__unused_webpack_module, exports) {
|
|
6427
|
+
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
6398
6428
|
|
|
6399
6429
|
"use strict";
|
|
6400
6430
|
|
|
6401
6431
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
6402
6432
|
exports.polyfill = exports.toInspectLogEntry = void 0;
|
|
6433
|
+
var type_plus_1 = __webpack_require__(/*! type-plus */ "../../node_modules/.pnpm/type-plus@4.13.1/node_modules/type-plus/cjs/index.js");
|
|
6403
6434
|
var toInspectLogEntry = function (e) { return e; };
|
|
6404
6435
|
exports.toInspectLogEntry = toInspectLogEntry;
|
|
6405
|
-
exports.polyfill =
|
|
6436
|
+
exports.polyfill = (0, type_plus_1.record)();
|
|
6406
6437
|
|
|
6407
6438
|
|
|
6408
6439
|
/***/ }),
|
|
@@ -6434,14 +6465,26 @@ var logLevels_js_1 = __webpack_require__(/*! ./logLevels.js */ "./ts/logLevels.t
|
|
|
6434
6465
|
var logStore_js_1 = __webpack_require__(/*! ./logStore.js */ "./ts/logStore.ts");
|
|
6435
6466
|
var memory_js_1 = __webpack_require__(/*! ./memory.js */ "./ts/memory.ts");
|
|
6436
6467
|
function createStandardLog(options) {
|
|
6468
|
+
var _a;
|
|
6437
6469
|
var closure = createStandardLogClosure(options);
|
|
6470
|
+
if ((_a = options === null || options === void 0 ? void 0 : options.reporters) === null || _a === void 0 ? void 0 : _a.some(function (r) { return !r.id; })) {
|
|
6471
|
+
var log = closure.standardLog.getLogger('standard-log');
|
|
6472
|
+
log.critical("Detected reporter with empty id. This is not allowed as it will create problems with feature like 'getNonConsoleLogger()'. Please add an id to your reporter.");
|
|
6473
|
+
}
|
|
6438
6474
|
if (!exports.ctx.gsl)
|
|
6439
6475
|
exports.ctx.gsl = closure;
|
|
6440
6476
|
return closure.standardLog;
|
|
6441
6477
|
}
|
|
6442
6478
|
exports.createStandardLog = createStandardLog;
|
|
6479
|
+
function noop() { }
|
|
6443
6480
|
function createStandardLogClosure(options) {
|
|
6481
|
+
var _a, _b, _c;
|
|
6482
|
+
// TODO reporter.id must not be empty
|
|
6444
6483
|
var store = (0, logStore_js_1.createLogStore)((0, type_plus_1.required)({ logLevel: logLevels_js_1.logLevels.info }, options));
|
|
6484
|
+
var nonConsoleReporters = (_b = (_a = options === null || options === void 0 ? void 0 : options.reporters) === null || _a === void 0 ? void 0 : _a.filter(function (r) { return !r.isConsoleReporter; }).map(function (r) { return r.id; })) !== null && _b !== void 0 ? _b : [];
|
|
6485
|
+
var logMethods = logLevels_js_1.DEFAULT_LOG_METHOD_NAMES
|
|
6486
|
+
.concat(Object.keys((_c = options === null || options === void 0 ? void 0 : options.customLevels) !== null && _c !== void 0 ? _c : {}))
|
|
6487
|
+
.concat(['on', 'count', 'write']);
|
|
6445
6488
|
return {
|
|
6446
6489
|
store: store,
|
|
6447
6490
|
standardLog: {
|
|
@@ -6456,16 +6499,36 @@ function createStandardLogClosure(options) {
|
|
|
6456
6499
|
if (store.loggers[id])
|
|
6457
6500
|
return store.loggers[id];
|
|
6458
6501
|
return store.loggers[id] = (0, logger_js_1.createLogger)(store, id, __assign({ ssf: this.getLogger }, options));
|
|
6459
|
-
}
|
|
6502
|
+
},
|
|
6503
|
+
getNonConsoleLogger: function (id, options) {
|
|
6504
|
+
if (store.nonConsoleLoggers[id])
|
|
6505
|
+
return store.nonConsoleLoggers[id];
|
|
6506
|
+
if (store.loggers[id]) {
|
|
6507
|
+
var log = this.getLogger('standard-log');
|
|
6508
|
+
log.warn("attempt to create a non-console logger with existing id ('".concat(id, "'), ignoring"));
|
|
6509
|
+
return store.nonConsoleLoggers[id] = createDummyLogger(logMethods);
|
|
6510
|
+
}
|
|
6511
|
+
return store.nonConsoleLoggers[id] = nonConsoleReporters.length === 0
|
|
6512
|
+
? createDummyLogger(logMethods)
|
|
6513
|
+
: (0, logger_js_1.createLogger)(store, id, __assign(__assign({ ssf: this.getNonConsoleLogger }, options), { writeTo: function (reporterId) {
|
|
6514
|
+
return nonConsoleReporters.indexOf(reporterId) >= 0;
|
|
6515
|
+
} }));
|
|
6516
|
+
},
|
|
6460
6517
|
}
|
|
6461
6518
|
};
|
|
6462
6519
|
}
|
|
6463
6520
|
exports.createStandardLogClosure = createStandardLogClosure;
|
|
6521
|
+
function createDummyLogger(logMethods) {
|
|
6522
|
+
return logMethods.reduce(function (p, m) {
|
|
6523
|
+
p[m] = noop;
|
|
6524
|
+
return p;
|
|
6525
|
+
}, (0, type_plus_1.record)());
|
|
6526
|
+
}
|
|
6464
6527
|
function createStandardLogForTest(logLevel) {
|
|
6465
6528
|
if (logLevel === void 0) { logLevel = logLevels_js_1.logLevels.debug; }
|
|
6466
6529
|
var reporter = (0, memory_js_1.createMemoryLogReporter)();
|
|
6467
|
-
var
|
|
6468
|
-
return __assign(__assign({}, standardLog), { reporter: reporter });
|
|
6530
|
+
var closure = createStandardLogClosure({ reporters: [reporter], logLevel: logLevel });
|
|
6531
|
+
return __assign(__assign({}, closure.standardLog), { reporter: reporter });
|
|
6469
6532
|
}
|
|
6470
6533
|
exports.createStandardLogForTest = createStandardLogForTest;
|
|
6471
6534
|
function suppressLogs(block) {
|
|
@@ -6491,10 +6554,9 @@ function getGlobalSL() {
|
|
|
6491
6554
|
return exports.ctx.gsl.standardLog;
|
|
6492
6555
|
}
|
|
6493
6556
|
function configGlobal(options) {
|
|
6494
|
-
var _a;
|
|
6495
6557
|
if (exports.ctx.configured) {
|
|
6496
|
-
var log =
|
|
6497
|
-
log
|
|
6558
|
+
var log = exports.ctx.gsl.standardLog.getLogger('standard-log');
|
|
6559
|
+
log.warn('configGlobal() is being called more than once. Please make sure this is expected. Application should use `createStandardLog()` most of the time.');
|
|
6498
6560
|
}
|
|
6499
6561
|
if (exports.ctx.gsl) {
|
|
6500
6562
|
if (options.logLevel) {
|
|
Binary file
|