@vvlad1973/simple-logger 2.1.10 → 2.2.1
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/dist/__test__/simple-logger.test.js +377 -48
- package/dist/__test__/simple-logger.test.js.map +1 -1
- package/dist/classes/simple-logger.d.ts +8 -1
- package/dist/classes/simple-logger.js +47 -13
- package/dist/classes/simple-logger.js.map +1 -1
- package/dist/helpers/helpers.d.ts +6 -0
- package/dist/helpers/helpers.js +20 -7
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/helpers/validators.d.ts +2 -2
- package/dist/helpers/validators.js +13 -4
- package/dist/helpers/validators.js.map +1 -1
- package/dist/types/simple-logger.types.d.ts +1 -2
- package/eslint.config.js +14 -0
- package/package.json +2 -2
- package/src/__test__/simple-logger.test.ts +485 -55
- package/src/classes/simple-logger.ts +67 -23
- package/src/helpers/helpers.ts +21 -3
- package/src/helpers/validators.ts +16 -7
- package/src/types/simple-logger.types.ts +1 -2
- package/tsconfig.json +2 -1
- package/vitest.config.ts +1 -1
|
@@ -1,66 +1,395 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
1
|
import SimpleLogger from '../classes/simple-logger.js';
|
|
3
2
|
describe('SimpleLogger', () => {
|
|
4
3
|
let consoleSpy;
|
|
4
|
+
let consoleWarnSpy;
|
|
5
5
|
beforeEach(() => {
|
|
6
6
|
consoleSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
7
|
+
consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
|
|
7
8
|
});
|
|
8
9
|
afterEach(() => {
|
|
9
10
|
consoleSpy.mockRestore();
|
|
11
|
+
consoleWarnSpy.mockRestore();
|
|
10
12
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
describe('Initialization Cases', () => {
|
|
14
|
+
it('CASE 1: should use console when no external logger is provided', () => {
|
|
15
|
+
const logger = new SimpleLogger();
|
|
16
|
+
expect(logger.isExternal).toBe(false);
|
|
17
|
+
logger.info('test message');
|
|
18
|
+
expect(consoleSpy).toHaveBeenCalledOnce();
|
|
19
|
+
expect(consoleSpy.mock.calls[0][0]).toMatch(/test message/);
|
|
20
|
+
});
|
|
21
|
+
it('CASE 2: should call logger factory with options', () => {
|
|
22
|
+
const mockLogger = {
|
|
23
|
+
info: vi.fn(),
|
|
24
|
+
level: 'info',
|
|
25
|
+
};
|
|
26
|
+
const factory = vi.fn(() => mockLogger);
|
|
27
|
+
const logger = new SimpleLogger(factory, { level: 'debug', msgPrefix: 'TEST' });
|
|
28
|
+
expect(factory).toHaveBeenCalledWith({
|
|
29
|
+
level: 'debug',
|
|
30
|
+
msgPrefix: 'TEST',
|
|
31
|
+
});
|
|
32
|
+
expect(logger.isExternal).toBe(true);
|
|
33
|
+
});
|
|
34
|
+
it('CASE 3: should fallback to console for invalid external logger', () => {
|
|
35
|
+
const logger = new SimpleLogger({});
|
|
36
|
+
expect(logger.isExternal).toBe(false);
|
|
37
|
+
expect(consoleWarnSpy).toHaveBeenCalledWith('Invalid or console logger passed, falling back to internal console.');
|
|
38
|
+
});
|
|
39
|
+
it('CASE 3b: should fallback to console when console is passed', () => {
|
|
40
|
+
const logger = new SimpleLogger(console);
|
|
41
|
+
expect(logger.isExternal).toBe(false);
|
|
42
|
+
});
|
|
43
|
+
it('CASE 4: should use external logger without params', () => {
|
|
44
|
+
const external = {
|
|
45
|
+
info: vi.fn(),
|
|
46
|
+
warn: vi.fn(),
|
|
47
|
+
level: 'info',
|
|
48
|
+
};
|
|
49
|
+
const logger = new SimpleLogger(external);
|
|
50
|
+
expect(logger.isExternal).toBe(true);
|
|
51
|
+
logger.info('test');
|
|
52
|
+
expect(external.info).toHaveBeenCalledWith('test');
|
|
53
|
+
});
|
|
54
|
+
it('CASE 5: should create child logger when external has .child() method', () => {
|
|
55
|
+
const childLogger = {
|
|
56
|
+
info: vi.fn(),
|
|
57
|
+
level: 'info',
|
|
58
|
+
};
|
|
59
|
+
const childFn = vi.fn(() => childLogger);
|
|
60
|
+
const external = {
|
|
61
|
+
info: vi.fn(),
|
|
62
|
+
level: 'info',
|
|
63
|
+
child: childFn,
|
|
64
|
+
};
|
|
65
|
+
const logger = new SimpleLogger(external, {
|
|
66
|
+
level: 'debug',
|
|
67
|
+
bindings: { app: 'test' },
|
|
68
|
+
msgPrefix: 'PREFIX',
|
|
69
|
+
});
|
|
70
|
+
expect(childFn).toHaveBeenCalledWith({ app: 'test' }, { level: 'debug', msgPrefix: 'PREFIX' });
|
|
71
|
+
expect(logger.isExternal).toBe(true);
|
|
72
|
+
});
|
|
73
|
+
it('CASE 6: should use external logger directly without .child() and set level', () => {
|
|
74
|
+
const external = {
|
|
75
|
+
info: vi.fn(),
|
|
76
|
+
level: 'info',
|
|
77
|
+
};
|
|
78
|
+
const logger = new SimpleLogger(external, { level: 'debug' });
|
|
79
|
+
expect(external.level).toBe('debug');
|
|
80
|
+
expect(logger.isExternal).toBe(true);
|
|
81
|
+
});
|
|
16
82
|
});
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
83
|
+
describe('Logging Methods', () => {
|
|
84
|
+
it('should log at all levels', () => {
|
|
85
|
+
const logger = new SimpleLogger(null, { level: 'trace' });
|
|
86
|
+
logger.trace('trace msg');
|
|
87
|
+
logger.debug('debug msg');
|
|
88
|
+
logger.info('info msg');
|
|
89
|
+
logger.warn('warn msg');
|
|
90
|
+
logger.error('error msg');
|
|
91
|
+
logger.fatal('fatal msg');
|
|
92
|
+
expect(consoleSpy).toHaveBeenCalledTimes(6);
|
|
93
|
+
});
|
|
94
|
+
it('should not log below current level', () => {
|
|
95
|
+
const logger = new SimpleLogger(null, { level: 'warn' });
|
|
96
|
+
logger.trace('should not log');
|
|
97
|
+
logger.debug('should not log');
|
|
98
|
+
logger.info('should not log');
|
|
99
|
+
logger.warn('should log');
|
|
100
|
+
logger.error('should log');
|
|
101
|
+
expect(consoleSpy).toHaveBeenCalledTimes(2);
|
|
102
|
+
});
|
|
103
|
+
it('should respect msgPrefix in console output', () => {
|
|
104
|
+
const logger = new SimpleLogger(null, { msgPrefix: '[PREFIX]' });
|
|
105
|
+
logger.info('message');
|
|
106
|
+
expect(consoleSpy.mock.calls[0][0]).toMatch(/\[PREFIX\]/);
|
|
107
|
+
});
|
|
108
|
+
it('should include bindings in console output', () => {
|
|
109
|
+
const logger = new SimpleLogger(null, { bindings: { user: 'john', id: 123 } });
|
|
110
|
+
logger.info('message');
|
|
111
|
+
const output = consoleSpy.mock.calls[0][0];
|
|
112
|
+
expect(output).toMatch(/user=john/);
|
|
113
|
+
expect(output).toMatch(/id=123/);
|
|
114
|
+
});
|
|
115
|
+
it('should handle object context with message', () => {
|
|
116
|
+
const logger = new SimpleLogger();
|
|
117
|
+
logger.info({ userId: 123 }, 'user action');
|
|
118
|
+
const output = consoleSpy.mock.calls[0][0];
|
|
119
|
+
expect(output).toMatch(/userId=123/);
|
|
120
|
+
expect(output).toMatch(/user action/);
|
|
121
|
+
});
|
|
122
|
+
it('should handle message with format arguments', () => {
|
|
123
|
+
const logger = new SimpleLogger();
|
|
124
|
+
logger.info('Hello %s, you are %d years old', 'John', 30);
|
|
125
|
+
const output = consoleSpy.mock.calls[0][0];
|
|
126
|
+
expect(output).toMatch(/Hello John, you are 30 years old/);
|
|
127
|
+
});
|
|
128
|
+
it('should handle object-only logging', () => {
|
|
129
|
+
const logger = new SimpleLogger();
|
|
130
|
+
logger.info({ status: 'ok' });
|
|
131
|
+
expect(consoleSpy).toHaveBeenCalled();
|
|
132
|
+
});
|
|
23
133
|
});
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
134
|
+
describe('External Logger Integration', () => {
|
|
135
|
+
it('should call external logger with string message', () => {
|
|
136
|
+
const external = {
|
|
137
|
+
info: vi.fn(),
|
|
138
|
+
level: 'info',
|
|
139
|
+
};
|
|
140
|
+
const logger = new SimpleLogger(external);
|
|
141
|
+
logger.info('test message');
|
|
142
|
+
expect(external.info).toHaveBeenCalledWith('test message');
|
|
143
|
+
});
|
|
144
|
+
it('should call external logger with object and message', () => {
|
|
145
|
+
const external = {
|
|
146
|
+
info: vi.fn(),
|
|
147
|
+
level: 'info',
|
|
148
|
+
};
|
|
149
|
+
const logger = new SimpleLogger(external);
|
|
150
|
+
logger.info({ userId: 123 }, 'user action');
|
|
151
|
+
expect(external.info).toHaveBeenCalledWith({ userId: 123 }, 'user action');
|
|
152
|
+
});
|
|
153
|
+
it('should call external logger with object only', () => {
|
|
154
|
+
const external = {
|
|
155
|
+
info: vi.fn(),
|
|
156
|
+
level: 'info',
|
|
157
|
+
};
|
|
158
|
+
const logger = new SimpleLogger(external);
|
|
159
|
+
logger.info({ status: 'ok' });
|
|
160
|
+
expect(external.info).toHaveBeenCalledWith({ status: 'ok' }, undefined);
|
|
161
|
+
});
|
|
162
|
+
it('should call external logger with message and format args', () => {
|
|
163
|
+
const external = {
|
|
164
|
+
info: vi.fn(),
|
|
165
|
+
level: 'info',
|
|
166
|
+
};
|
|
167
|
+
const logger = new SimpleLogger(external);
|
|
168
|
+
logger.info('Hello %s', 'world');
|
|
169
|
+
expect(external.info).toHaveBeenCalledWith('Hello %s', 'world');
|
|
170
|
+
});
|
|
171
|
+
it('should skip logging if method does not exist on external logger', () => {
|
|
172
|
+
const external = {
|
|
173
|
+
info: vi.fn(),
|
|
174
|
+
level: 'info',
|
|
175
|
+
};
|
|
176
|
+
const logger = new SimpleLogger(external);
|
|
177
|
+
logger.debug('should not call');
|
|
178
|
+
expect(external.info).not.toHaveBeenCalled();
|
|
179
|
+
});
|
|
180
|
+
it('should warn on invalid log arguments', () => {
|
|
181
|
+
const external = {
|
|
182
|
+
info: vi.fn(),
|
|
183
|
+
level: 'info',
|
|
184
|
+
};
|
|
185
|
+
const logger = new SimpleLogger(external);
|
|
186
|
+
// Simulate invalid prepared args by calling with invalid types
|
|
187
|
+
logger.callExternalLogMethod('info', [undefined]);
|
|
188
|
+
expect(consoleWarnSpy).toHaveBeenCalled();
|
|
189
|
+
});
|
|
28
190
|
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
191
|
+
describe('Level Management', () => {
|
|
192
|
+
it('should get current level', () => {
|
|
193
|
+
const logger = new SimpleLogger(null, { level: 'warn' });
|
|
194
|
+
expect(logger.getLevel()).toBe('warn');
|
|
195
|
+
});
|
|
196
|
+
it('should set new level', () => {
|
|
197
|
+
const logger = new SimpleLogger(null, { level: 'info' });
|
|
198
|
+
expect(logger.getLevel()).toBe('info');
|
|
199
|
+
logger.setLevel('error');
|
|
200
|
+
expect(logger.getLevel()).toBe('error');
|
|
201
|
+
logger.info('should not log');
|
|
202
|
+
logger.error('should log');
|
|
203
|
+
expect(consoleSpy).toHaveBeenCalledOnce();
|
|
204
|
+
});
|
|
205
|
+
it('should sync level with external logger', () => {
|
|
206
|
+
const external = {
|
|
207
|
+
info: vi.fn(),
|
|
208
|
+
level: 'info',
|
|
209
|
+
};
|
|
210
|
+
const logger = new SimpleLogger(external);
|
|
211
|
+
logger.setLevel('debug');
|
|
212
|
+
expect(external.level).toBe('debug');
|
|
213
|
+
});
|
|
214
|
+
it('should resolve level from external logger', () => {
|
|
215
|
+
const external = {
|
|
216
|
+
info: vi.fn(),
|
|
217
|
+
level: 'warn',
|
|
218
|
+
};
|
|
219
|
+
const logger = new SimpleLogger(external);
|
|
220
|
+
expect(logger.getLevel()).toBe('warn');
|
|
221
|
+
});
|
|
222
|
+
it('should prioritize explicit level over logger level', () => {
|
|
223
|
+
const external = {
|
|
224
|
+
info: vi.fn(),
|
|
225
|
+
level: 'warn',
|
|
226
|
+
};
|
|
227
|
+
const logger = new SimpleLogger(external, { level: 'debug' });
|
|
228
|
+
expect(logger.getLevel()).toBe('debug');
|
|
229
|
+
});
|
|
230
|
+
it('should ignore invalid level in external logger', () => {
|
|
231
|
+
const external = {
|
|
232
|
+
info: vi.fn(),
|
|
233
|
+
level: 'invalid_level',
|
|
234
|
+
};
|
|
235
|
+
const logger = new SimpleLogger(external);
|
|
236
|
+
// Should fall back to default level
|
|
237
|
+
expect(logger.getLevel()).toBe('info');
|
|
238
|
+
});
|
|
38
239
|
});
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
240
|
+
describe('Enable/Disable', () => {
|
|
241
|
+
it('should disable all logging when disabled', () => {
|
|
242
|
+
const logger = new SimpleLogger(null, { level: 'trace' });
|
|
243
|
+
logger.disable();
|
|
244
|
+
logger.trace('should not log');
|
|
245
|
+
logger.info('should not log');
|
|
246
|
+
logger.error('should not log');
|
|
247
|
+
expect(consoleSpy).not.toHaveBeenCalled();
|
|
248
|
+
});
|
|
249
|
+
it('should enable logging when re-enabled', () => {
|
|
250
|
+
const logger = new SimpleLogger(null, { level: 'info' });
|
|
251
|
+
logger.disable();
|
|
252
|
+
logger.info('should not log');
|
|
253
|
+
logger.enable();
|
|
254
|
+
logger.info('should log');
|
|
255
|
+
expect(consoleSpy).toHaveBeenCalledOnce();
|
|
256
|
+
});
|
|
43
257
|
});
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
258
|
+
describe('Child Logger', () => {
|
|
259
|
+
it('should create child logger with merged bindings', () => {
|
|
260
|
+
const logger = new SimpleLogger(null, { bindings: { user: 'A' } });
|
|
261
|
+
const child = logger.child({ request: '123' });
|
|
262
|
+
child.info('child message');
|
|
263
|
+
const output = consoleSpy.mock.calls[0][0];
|
|
264
|
+
expect(output).toMatch(/user=A/);
|
|
265
|
+
expect(output).toMatch(/request=123/);
|
|
266
|
+
expect(output).toMatch(/child message/);
|
|
267
|
+
});
|
|
268
|
+
it('should call external logger .child() method if available', () => {
|
|
269
|
+
const childLogger = {
|
|
270
|
+
info: vi.fn(),
|
|
271
|
+
level: 'info',
|
|
272
|
+
};
|
|
273
|
+
const childFn = vi.fn(() => childLogger);
|
|
274
|
+
const external = {
|
|
275
|
+
level: 'info',
|
|
276
|
+
child: childFn,
|
|
277
|
+
info: vi.fn(),
|
|
278
|
+
};
|
|
279
|
+
const logger = new SimpleLogger(external);
|
|
280
|
+
const child = logger.child({ traceId: 'xyz' });
|
|
281
|
+
child.info('from child');
|
|
282
|
+
expect(childFn).toHaveBeenCalledWith({ traceId: 'xyz' });
|
|
283
|
+
expect(childLogger.info).toHaveBeenCalledWith('from child');
|
|
284
|
+
});
|
|
285
|
+
it('should create child without calling external .child() if not function', () => {
|
|
286
|
+
const external = {
|
|
287
|
+
info: vi.fn(),
|
|
288
|
+
level: 'info',
|
|
289
|
+
};
|
|
290
|
+
const logger = new SimpleLogger(external);
|
|
291
|
+
const child = logger.child({ req: '456' });
|
|
292
|
+
expect(child).toBeInstanceOf(SimpleLogger);
|
|
293
|
+
});
|
|
53
294
|
});
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
295
|
+
describe('Function Logging', () => {
|
|
296
|
+
it('should log function start', () => {
|
|
297
|
+
const logger = new SimpleLogger(null, { level: 'trace' });
|
|
298
|
+
logger.logFunctionStart('myFunction');
|
|
299
|
+
expect(consoleSpy).toHaveBeenCalled();
|
|
300
|
+
expect(consoleSpy.mock.calls[0][0]).toMatch(/Function start: myFunction/);
|
|
301
|
+
});
|
|
302
|
+
it('should log function end', () => {
|
|
303
|
+
const logger = new SimpleLogger(null, { level: 'trace' });
|
|
304
|
+
logger.logFunctionEnd('myFunction');
|
|
305
|
+
expect(consoleSpy).toHaveBeenCalled();
|
|
306
|
+
expect(consoleSpy.mock.calls[0][0]).toMatch(/Function end: myFunction/);
|
|
307
|
+
});
|
|
308
|
+
it('should use caller name if not provided', () => {
|
|
309
|
+
const logger = new SimpleLogger(null, { level: 'trace' });
|
|
310
|
+
logger.logFunctionStart();
|
|
311
|
+
logger.logFunctionEnd();
|
|
312
|
+
expect(consoleSpy).toHaveBeenCalledTimes(2);
|
|
313
|
+
});
|
|
314
|
+
});
|
|
315
|
+
describe('Flush Method', () => {
|
|
316
|
+
it('should return immediately if not external logger', async () => {
|
|
317
|
+
const logger = new SimpleLogger();
|
|
318
|
+
await expect(logger.flush()).resolves.toBeUndefined();
|
|
319
|
+
});
|
|
320
|
+
it('should call flush on external logger if available', async () => {
|
|
321
|
+
const flushFn = vi.fn((cb) => cb());
|
|
322
|
+
const external = {
|
|
323
|
+
info: vi.fn(),
|
|
324
|
+
level: 'info',
|
|
325
|
+
flush: flushFn,
|
|
326
|
+
};
|
|
327
|
+
const logger = new SimpleLogger(external);
|
|
328
|
+
await logger.flush();
|
|
329
|
+
expect(flushFn).toHaveBeenCalled();
|
|
330
|
+
});
|
|
331
|
+
it('should handle flush errors gracefully', async () => {
|
|
332
|
+
const flushFn = vi.fn((cb) => cb(new Error('Flush error')));
|
|
333
|
+
const external = {
|
|
334
|
+
info: vi.fn(),
|
|
335
|
+
level: 'info',
|
|
336
|
+
flush: flushFn,
|
|
337
|
+
};
|
|
338
|
+
const logger = new SimpleLogger(external);
|
|
339
|
+
await expect(logger.flush()).resolves.toBeUndefined();
|
|
340
|
+
});
|
|
341
|
+
it('should return immediately if flush is not a function', async () => {
|
|
342
|
+
const external = {
|
|
343
|
+
info: vi.fn(),
|
|
344
|
+
level: 'info',
|
|
345
|
+
};
|
|
346
|
+
const logger = new SimpleLogger(external);
|
|
347
|
+
await expect(logger.flush()).resolves.toBeUndefined();
|
|
348
|
+
});
|
|
349
|
+
});
|
|
350
|
+
describe('Silent Level', () => {
|
|
351
|
+
it('should not log anything at silent level', () => {
|
|
352
|
+
const logger = new SimpleLogger(null, { level: 'silent' });
|
|
353
|
+
logger.trace('should not log');
|
|
354
|
+
logger.debug('should not log');
|
|
355
|
+
logger.info('should not log');
|
|
356
|
+
logger.warn('should not log');
|
|
357
|
+
logger.error('should not log');
|
|
358
|
+
logger.fatal('should not log');
|
|
359
|
+
expect(consoleSpy).not.toHaveBeenCalled();
|
|
360
|
+
});
|
|
361
|
+
});
|
|
362
|
+
describe('Level Resolution', () => {
|
|
363
|
+
it('should handle logger without level property', () => {
|
|
364
|
+
const external = {
|
|
365
|
+
info: vi.fn(),
|
|
366
|
+
};
|
|
367
|
+
const logger = new SimpleLogger(external);
|
|
368
|
+
expect(logger.getLevel()).toBe('info');
|
|
369
|
+
});
|
|
370
|
+
it('should not update level on external logger without level property', () => {
|
|
371
|
+
const external = {
|
|
372
|
+
info: vi.fn(),
|
|
373
|
+
};
|
|
374
|
+
const logger = new SimpleLogger(external);
|
|
375
|
+
logger.setLevel('debug');
|
|
376
|
+
expect(external.level).toBeUndefined();
|
|
377
|
+
});
|
|
378
|
+
});
|
|
379
|
+
describe('Factory with Transport', () => {
|
|
380
|
+
it('should pass transport option to factory', () => {
|
|
381
|
+
const mockLogger = {
|
|
382
|
+
info: vi.fn(),
|
|
383
|
+
level: 'info',
|
|
384
|
+
};
|
|
385
|
+
const factory = vi.fn(() => mockLogger);
|
|
386
|
+
const transport = { target: 'pino/file' };
|
|
387
|
+
new SimpleLogger(factory, { level: 'info', transport });
|
|
388
|
+
expect(factory).toHaveBeenCalledWith({
|
|
389
|
+
level: 'info',
|
|
390
|
+
transport,
|
|
391
|
+
});
|
|
392
|
+
});
|
|
64
393
|
});
|
|
65
394
|
});
|
|
66
395
|
//# sourceMappingURL=simple-logger.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-logger.test.js","sourceRoot":"","sources":["../../src/__test__/simple-logger.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"simple-logger.test.js","sourceRoot":"","sources":["../../src/__test__/simple-logger.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* A module for simple logging with various logging levels.
|
|
3
3
|
* @module SimpleLogger
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import type { ExternalLogger, LogFn, LoggerFactory, LoggerLevel, LoggerOptions } from '../types/simple-logger.types.js';
|
|
6
6
|
export default class SimpleLogger {
|
|
7
7
|
private currentLevelIndex;
|
|
8
8
|
private logger;
|
|
@@ -122,4 +122,11 @@ export default class SimpleLogger {
|
|
|
122
122
|
* @return {void}
|
|
123
123
|
*/
|
|
124
124
|
logFunctionEnd(name?: string): void;
|
|
125
|
+
/**
|
|
126
|
+
* Flushes the logger buffer if the external logger supports it.
|
|
127
|
+
* This is useful for ensuring all buffered log entries are written before the application exits.
|
|
128
|
+
*
|
|
129
|
+
* @return {Promise<void>} A promise that resolves when the flush is complete.
|
|
130
|
+
*/
|
|
131
|
+
flush(): Promise<void>;
|
|
125
132
|
}
|
|
@@ -42,12 +42,11 @@ export default class SimpleLogger {
|
|
|
42
42
|
const levels = Object.values(LoggerLevels);
|
|
43
43
|
if (explicitLevel)
|
|
44
44
|
return explicitLevel;
|
|
45
|
-
if (logger &&
|
|
46
|
-
typeof logger === 'object' &&
|
|
47
|
-
'level' in logger &&
|
|
45
|
+
if ('level' in logger &&
|
|
48
46
|
typeof logger.level === 'string') {
|
|
49
47
|
const lvl = logger.level.toLowerCase();
|
|
50
|
-
|
|
48
|
+
const isValidLevel = (value) => levels.includes(value);
|
|
49
|
+
if (isValidLevel(lvl))
|
|
51
50
|
return lvl;
|
|
52
51
|
}
|
|
53
52
|
return levels[this.currentLevelIndex];
|
|
@@ -69,9 +68,9 @@ export default class SimpleLogger {
|
|
|
69
68
|
*/
|
|
70
69
|
initLogger(externalLogger, options = {}) {
|
|
71
70
|
const { level, bindings = {}, msgPrefix, transport, ...restOptions } = options;
|
|
72
|
-
const hasParams = level ||
|
|
73
|
-
msgPrefix ||
|
|
74
|
-
transport ||
|
|
71
|
+
const hasParams = level !== undefined ||
|
|
72
|
+
msgPrefix !== undefined ||
|
|
73
|
+
transport !== undefined ||
|
|
75
74
|
Object.keys(bindings).length > 0 ||
|
|
76
75
|
Object.keys(restOptions).length > 0;
|
|
77
76
|
const effectiveBindings = {
|
|
@@ -173,7 +172,23 @@ export default class SimpleLogger {
|
|
|
173
172
|
return;
|
|
174
173
|
const prepared = prepareLogCall(args);
|
|
175
174
|
if (prepared !== null) {
|
|
176
|
-
|
|
175
|
+
const [first, ...rest] = prepared;
|
|
176
|
+
if (typeof first === 'string') {
|
|
177
|
+
// Call with string message signature: (msg: string, ...args: unknown[])
|
|
178
|
+
method.call(this.logger, first, ...rest);
|
|
179
|
+
}
|
|
180
|
+
else if (typeof first === 'object') {
|
|
181
|
+
// Call with object signature: (obj: object, msg?: string, ...args: unknown[])
|
|
182
|
+
const [second, ...otherRest] = rest;
|
|
183
|
+
if (typeof second === 'string') {
|
|
184
|
+
// Call with both object and message
|
|
185
|
+
method.call(this.logger, first, second, ...otherRest);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
// Call with object only (msg is undefined)
|
|
189
|
+
method.call(this.logger, first, undefined, ...otherRest);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
177
192
|
}
|
|
178
193
|
else {
|
|
179
194
|
console.warn(`Invalid log arguments for "${level}"`, args);
|
|
@@ -193,7 +208,7 @@ export default class SimpleLogger {
|
|
|
193
208
|
const { msg, rest } = extractMessage(args);
|
|
194
209
|
const fullMsg = util.format(msg, ...rest);
|
|
195
210
|
const ctx = Object.entries({ ...this.bindings, ...context })
|
|
196
|
-
.map(([k, v]) => `${k}=${v}`)
|
|
211
|
+
.map(([k, v]) => `${k}=${String(v)}`)
|
|
197
212
|
.join(' ');
|
|
198
213
|
const prefix = `[${time}] ${levelStr}`;
|
|
199
214
|
const contextStr = ctx ? ` (${ctx})` : '';
|
|
@@ -253,9 +268,7 @@ export default class SimpleLogger {
|
|
|
253
268
|
*/
|
|
254
269
|
child(newBindings) {
|
|
255
270
|
const merged = { ...this.bindings, ...newBindings };
|
|
256
|
-
if (this.isExternal
|
|
257
|
-
typeof this.logger === 'object' &&
|
|
258
|
-
this.logger !== null) {
|
|
271
|
+
if (this.isExternal) {
|
|
259
272
|
const logger = this.logger;
|
|
260
273
|
const childFn = logger.child;
|
|
261
274
|
if (typeof childFn === 'function') {
|
|
@@ -288,8 +301,29 @@ export default class SimpleLogger {
|
|
|
288
301
|
* @return {void}
|
|
289
302
|
*/
|
|
290
303
|
logFunctionEnd(name) {
|
|
291
|
-
const caller = name
|
|
304
|
+
const caller = name ?? getCallerName();
|
|
292
305
|
this.trace(`Function end: ${caller}`);
|
|
293
306
|
}
|
|
307
|
+
/**
|
|
308
|
+
* Flushes the logger buffer if the external logger supports it.
|
|
309
|
+
* This is useful for ensuring all buffered log entries are written before the application exits.
|
|
310
|
+
*
|
|
311
|
+
* @return {Promise<void>} A promise that resolves when the flush is complete.
|
|
312
|
+
*/
|
|
313
|
+
async flush() {
|
|
314
|
+
if (!this.isExternal) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
const logger = this.logger;
|
|
318
|
+
if (typeof logger.flush === 'function') {
|
|
319
|
+
try {
|
|
320
|
+
const promisifiedFlush = util.promisify(logger.flush.bind(logger));
|
|
321
|
+
return await promisifiedFlush();
|
|
322
|
+
}
|
|
323
|
+
catch {
|
|
324
|
+
// Ignore flush errors - they're not critical
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
294
328
|
}
|
|
295
329
|
//# sourceMappingURL=simple-logger.js.map
|