core-services-sdk 1.3.91 → 1.3.92
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/package.json
CHANGED
package/src/logger/get-logger.js
CHANGED
|
@@ -31,6 +31,7 @@ const isValidLogger = (logger) =>
|
|
|
31
31
|
* - `undefined` → pino with level 'info'
|
|
32
32
|
* - `true` → pino with level 'info'
|
|
33
33
|
* - `{ logger: true, level?: string }` → pino with given level
|
|
34
|
+
* - `{ level?: string, base?: object, ... }` → pino with provided options
|
|
34
35
|
* - `{ logger: LoggerObject }` → use provided logger
|
|
35
36
|
* - fallback → dummy logger
|
|
36
37
|
*
|
|
@@ -64,6 +65,13 @@ export const getLogger = (option) => {
|
|
|
64
65
|
if (isValidLogger(logger)) {
|
|
65
66
|
return logger
|
|
66
67
|
}
|
|
68
|
+
|
|
69
|
+
// No `logger` key — treat the whole object as pino options
|
|
70
|
+
if (!('logger' in option)) {
|
|
71
|
+
const pinoLogger = pino(option)
|
|
72
|
+
pinoLogger.info('[getLogger] Using Pino logger with provided options.')
|
|
73
|
+
return pinoLogger
|
|
74
|
+
}
|
|
67
75
|
}
|
|
68
76
|
|
|
69
77
|
// Invalid or no-op fallback
|
|
@@ -37,31 +37,45 @@ describe('getLogger', () => {
|
|
|
37
37
|
expect(result).toBe(mockLogger)
|
|
38
38
|
})
|
|
39
39
|
|
|
40
|
-
it('returns
|
|
40
|
+
it('returns a pino logger when called with pino options (no logger key)', () => {
|
|
41
|
+
const logger = getLogger({ level: 'warn' })
|
|
42
|
+
expect(typeof logger.info).toBe('function')
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
expect(logger.level).toBe('warn')
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
it('passes through all pino options when no logger key is present', () => {
|
|
48
|
+
const logger = getLogger({ level: 'debug', base: { service: 'test-svc' } })
|
|
49
|
+
expect(typeof logger.info).toBe('function')
|
|
50
|
+
// @ts-ignore
|
|
51
|
+
expect(logger.level).toBe('debug')
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
it('treats object without logger key as pino options, not dummy logger', () => {
|
|
55
|
+
const result = getLogger({ someOtherKey: 123 })
|
|
56
|
+
// Should be a real pino logger, not the dummy logger
|
|
57
|
+
expect(typeof result.info).toBe('function')
|
|
58
|
+
// @ts-ignore — pino loggers have a level property
|
|
59
|
+
expect(result.level).toBeDefined()
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
it('returns the dummy logger when logger key is present but invalid', () => {
|
|
41
63
|
const invalidLogger = { info: () => {}, warn: () => {} } // missing required methods
|
|
42
64
|
const logger = getLogger({ logger: invalidLogger })
|
|
43
65
|
|
|
44
66
|
expect(logger.info).toBeDefined()
|
|
45
|
-
expect(logger.warn).toBeDefined()
|
|
46
|
-
expect(logger.error).toBeDefined()
|
|
47
|
-
expect(logger.debug).toBeDefined()
|
|
48
|
-
expect(logger.fatal).toBeDefined()
|
|
49
|
-
expect(logger.trace).toBeDefined()
|
|
50
|
-
|
|
51
67
|
// dummy logger methods are no-ops
|
|
52
68
|
expect(() => logger.info('hello')).not.toThrow()
|
|
53
69
|
// @ts-ignore
|
|
54
70
|
expect(logger.info()).toBeUndefined()
|
|
55
71
|
})
|
|
56
72
|
|
|
57
|
-
it('returns the dummy logger
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
expect(
|
|
61
|
-
|
|
62
|
-
expect(
|
|
63
|
-
expect(result.fatal).toBeDefined()
|
|
64
|
-
expect(result.trace).toBeDefined()
|
|
73
|
+
it('returns the dummy logger for non-object, non-boolean values', () => {
|
|
74
|
+
// @ts-ignore — testing fallback
|
|
75
|
+
const logger = getLogger('invalid')
|
|
76
|
+
expect(logger.info).toBeDefined()
|
|
77
|
+
// @ts-ignore
|
|
78
|
+
expect(logger.info()).toBeUndefined()
|
|
65
79
|
})
|
|
66
80
|
|
|
67
81
|
it('logs a message when using internal pino with level warn', () => {
|