@vvlad1973/simple-logger 2.2.0 → 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.js +18 -5
- package/dist/classes/simple-logger.js.map +1 -1
- 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 +30 -6
- 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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"}
|
|
@@ -174,12 +174,20 @@ export default class SimpleLogger {
|
|
|
174
174
|
if (prepared !== null) {
|
|
175
175
|
const [first, ...rest] = prepared;
|
|
176
176
|
if (typeof first === 'string') {
|
|
177
|
-
|
|
177
|
+
// Call with string message signature: (msg: string, ...args: unknown[])
|
|
178
|
+
method.call(this.logger, first, ...rest);
|
|
178
179
|
}
|
|
179
180
|
else if (typeof first === 'object') {
|
|
181
|
+
// Call with object signature: (obj: object, msg?: string, ...args: unknown[])
|
|
180
182
|
const [second, ...otherRest] = rest;
|
|
181
|
-
|
|
182
|
-
|
|
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
|
+
}
|
|
183
191
|
}
|
|
184
192
|
}
|
|
185
193
|
else {
|
|
@@ -308,8 +316,13 @@ export default class SimpleLogger {
|
|
|
308
316
|
}
|
|
309
317
|
const logger = this.logger;
|
|
310
318
|
if (typeof logger.flush === 'function') {
|
|
311
|
-
|
|
312
|
-
|
|
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
|
+
}
|
|
313
326
|
}
|
|
314
327
|
}
|
|
315
328
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simple-logger.js","sourceRoot":"","sources":["../../src/classes/simple-logger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"simple-logger.js","sourceRoot":"","sources":["../../src/classes/simple-logger.ts"],"names":[],"mappings":"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"}
|
package/eslint.config.js
CHANGED
|
@@ -59,5 +59,19 @@ export default [
|
|
|
59
59
|
'no-param-reassign': 'off',
|
|
60
60
|
'complexity': ['warn', 25]
|
|
61
61
|
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
files: ['src/**/*.test.ts'],
|
|
65
|
+
rules: {
|
|
66
|
+
'@typescript-eslint/no-unsafe-member-access': 'off',
|
|
67
|
+
'@typescript-eslint/no-unsafe-call': 'off',
|
|
68
|
+
'@typescript-eslint/no-unsafe-assignment': 'off',
|
|
69
|
+
'@typescript-eslint/no-unsafe-type-assertion': 'off',
|
|
70
|
+
'@typescript-eslint/no-explicit-any': 'off',
|
|
71
|
+
'@typescript-eslint/no-unsafe-return': 'off',
|
|
72
|
+
'max-nested-callbacks': 'off',
|
|
73
|
+
'@typescript-eslint/no-confusing-void-expression': 'off',
|
|
74
|
+
'no-new': 'off'
|
|
75
|
+
}
|
|
62
76
|
}
|
|
63
77
|
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vvlad1973/simple-logger",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@eslint/compat": "^2.0.0",
|
|
29
29
|
"@types/node": "^25.0.3",
|
|
30
30
|
"@typescript-eslint/eslint-plugin": "^8.50.0",
|
|
31
|
-
"@typescript-eslint/parser": "^8.50.
|
|
31
|
+
"@typescript-eslint/parser": "^8.50.1",
|
|
32
32
|
"@vitest/coverage-v8": "^4.0.16",
|
|
33
33
|
"@vvlad1973/gen-changelog": "^1.1.5",
|
|
34
34
|
"eslint": "^9.39.2",
|
|
@@ -1,81 +1,511 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
1
|
import SimpleLogger from '../classes/simple-logger.js';
|
|
3
|
-
import type { ExternalLogger } from '../types/simple-logger.types.js';
|
|
2
|
+
import type { ExternalLogger, LoggerFactory } from '../types/simple-logger.types.js';
|
|
4
3
|
|
|
5
4
|
describe('SimpleLogger', () => {
|
|
6
5
|
let consoleSpy: ReturnType<typeof vi.spyOn>;
|
|
6
|
+
let consoleWarnSpy: ReturnType<typeof vi.spyOn>;
|
|
7
7
|
|
|
8
8
|
beforeEach(() => {
|
|
9
9
|
consoleSpy = vi.spyOn(console, 'log').mockImplementation(() => {});
|
|
10
|
+
consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
|
10
11
|
});
|
|
11
12
|
|
|
12
13
|
afterEach(() => {
|
|
13
14
|
consoleSpy.mockRestore();
|
|
15
|
+
consoleWarnSpy.mockRestore();
|
|
14
16
|
});
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
describe('Initialization Cases', () => {
|
|
19
|
+
it('CASE 1: should use console when no external logger is provided', () => {
|
|
20
|
+
const logger = new SimpleLogger();
|
|
21
|
+
expect(logger.isExternal).toBe(false);
|
|
22
|
+
logger.info('test message');
|
|
23
|
+
expect(consoleSpy).toHaveBeenCalledOnce();
|
|
24
|
+
expect(consoleSpy.mock.calls[0][0]).toMatch(/test message/);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('CASE 2: should call logger factory with options', () => {
|
|
28
|
+
const mockLogger: ExternalLogger = {
|
|
29
|
+
info: vi.fn(),
|
|
30
|
+
level: 'info',
|
|
31
|
+
};
|
|
32
|
+
const factory: LoggerFactory = vi.fn(() => mockLogger);
|
|
33
|
+
|
|
34
|
+
const logger = new SimpleLogger(factory, { level: 'debug', msgPrefix: 'TEST' });
|
|
35
|
+
|
|
36
|
+
expect(factory).toHaveBeenCalledWith({
|
|
37
|
+
level: 'debug',
|
|
38
|
+
msgPrefix: 'TEST',
|
|
39
|
+
});
|
|
40
|
+
expect(logger.isExternal).toBe(true);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it('CASE 3: should fallback to console for invalid external logger', () => {
|
|
44
|
+
const logger = new SimpleLogger({} as ExternalLogger);
|
|
45
|
+
expect(logger.isExternal).toBe(false);
|
|
46
|
+
expect(consoleWarnSpy).toHaveBeenCalledWith(
|
|
47
|
+
'Invalid or console logger passed, falling back to internal console.'
|
|
48
|
+
);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('CASE 3b: should fallback to console when console is passed', () => {
|
|
52
|
+
const logger = new SimpleLogger(console as unknown as ExternalLogger);
|
|
53
|
+
expect(logger.isExternal).toBe(false);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it('CASE 4: should use external logger without params', () => {
|
|
57
|
+
const external: ExternalLogger = {
|
|
58
|
+
info: vi.fn(),
|
|
59
|
+
warn: vi.fn(),
|
|
60
|
+
level: 'info',
|
|
61
|
+
};
|
|
62
|
+
const logger = new SimpleLogger(external);
|
|
63
|
+
expect(logger.isExternal).toBe(true);
|
|
64
|
+
|
|
65
|
+
logger.info('test');
|
|
66
|
+
expect(external.info).toHaveBeenCalledWith('test');
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
it('CASE 5: should create child logger when external has .child() method', () => {
|
|
70
|
+
const childLogger: ExternalLogger = {
|
|
71
|
+
info: vi.fn(),
|
|
72
|
+
level: 'info',
|
|
73
|
+
};
|
|
74
|
+
const childFn = vi.fn(() => childLogger);
|
|
75
|
+
const external: ExternalLogger = {
|
|
76
|
+
info: vi.fn(),
|
|
77
|
+
level: 'info',
|
|
78
|
+
child: childFn,
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const logger = new SimpleLogger(external, {
|
|
82
|
+
level: 'debug',
|
|
83
|
+
bindings: { app: 'test' },
|
|
84
|
+
msgPrefix: 'PREFIX',
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
expect(childFn).toHaveBeenCalledWith(
|
|
88
|
+
{ app: 'test' },
|
|
89
|
+
{ level: 'debug', msgPrefix: 'PREFIX' }
|
|
90
|
+
);
|
|
91
|
+
expect(logger.isExternal).toBe(true);
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
it('CASE 6: should use external logger directly without .child() and set level', () => {
|
|
95
|
+
const external: ExternalLogger = {
|
|
96
|
+
info: vi.fn(),
|
|
97
|
+
level: 'info',
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
const logger = new SimpleLogger(external, { level: 'debug' });
|
|
101
|
+
|
|
102
|
+
expect(external.level).toBe('debug');
|
|
103
|
+
expect(logger.isExternal).toBe(true);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
describe('Logging Methods', () => {
|
|
108
|
+
it('should log at all levels', () => {
|
|
109
|
+
const logger = new SimpleLogger(null, { level: 'trace' });
|
|
110
|
+
|
|
111
|
+
logger.trace('trace msg');
|
|
112
|
+
logger.debug('debug msg');
|
|
113
|
+
logger.info('info msg');
|
|
114
|
+
logger.warn('warn msg');
|
|
115
|
+
logger.error('error msg');
|
|
116
|
+
logger.fatal('fatal msg');
|
|
117
|
+
|
|
118
|
+
expect(consoleSpy).toHaveBeenCalledTimes(6);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
it('should not log below current level', () => {
|
|
122
|
+
const logger = new SimpleLogger(null, { level: 'warn' });
|
|
123
|
+
|
|
124
|
+
logger.trace('should not log');
|
|
125
|
+
logger.debug('should not log');
|
|
126
|
+
logger.info('should not log');
|
|
127
|
+
logger.warn('should log');
|
|
128
|
+
logger.error('should log');
|
|
129
|
+
|
|
130
|
+
expect(consoleSpy).toHaveBeenCalledTimes(2);
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
it('should respect msgPrefix in console output', () => {
|
|
134
|
+
const logger = new SimpleLogger(null, { msgPrefix: '[PREFIX]' });
|
|
135
|
+
logger.info('message');
|
|
136
|
+
expect(consoleSpy.mock.calls[0][0]).toMatch(/\[PREFIX\]/);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
it('should include bindings in console output', () => {
|
|
140
|
+
const logger = new SimpleLogger(null, { bindings: { user: 'john', id: 123 } });
|
|
141
|
+
logger.info('message');
|
|
142
|
+
const output = consoleSpy.mock.calls[0][0];
|
|
143
|
+
expect(output).toMatch(/user=john/);
|
|
144
|
+
expect(output).toMatch(/id=123/);
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
it('should handle object context with message', () => {
|
|
148
|
+
const logger = new SimpleLogger();
|
|
149
|
+
logger.info({ userId: 123 }, 'user action');
|
|
150
|
+
const output = consoleSpy.mock.calls[0][0];
|
|
151
|
+
expect(output).toMatch(/userId=123/);
|
|
152
|
+
expect(output).toMatch(/user action/);
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
it('should handle message with format arguments', () => {
|
|
156
|
+
const logger = new SimpleLogger();
|
|
157
|
+
logger.info('Hello %s, you are %d years old', 'John', 30);
|
|
158
|
+
const output = consoleSpy.mock.calls[0][0];
|
|
159
|
+
expect(output).toMatch(/Hello John, you are 30 years old/);
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
it('should handle object-only logging', () => {
|
|
163
|
+
const logger = new SimpleLogger();
|
|
164
|
+
logger.info({ status: 'ok' });
|
|
165
|
+
expect(consoleSpy).toHaveBeenCalled();
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
describe('External Logger Integration', () => {
|
|
170
|
+
it('should call external logger with string message', () => {
|
|
171
|
+
const external: ExternalLogger = {
|
|
172
|
+
info: vi.fn(),
|
|
173
|
+
level: 'info',
|
|
174
|
+
};
|
|
175
|
+
const logger = new SimpleLogger(external);
|
|
176
|
+
|
|
177
|
+
logger.info('test message');
|
|
178
|
+
|
|
179
|
+
expect(external.info).toHaveBeenCalledWith('test message');
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
it('should call external logger with object and message', () => {
|
|
183
|
+
const external: ExternalLogger = {
|
|
184
|
+
info: vi.fn(),
|
|
185
|
+
level: 'info',
|
|
186
|
+
};
|
|
187
|
+
const logger = new SimpleLogger(external);
|
|
188
|
+
|
|
189
|
+
logger.info({ userId: 123 }, 'user action');
|
|
190
|
+
|
|
191
|
+
expect(external.info).toHaveBeenCalledWith({ userId: 123 }, 'user action');
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
it('should call external logger with object only', () => {
|
|
195
|
+
const external: ExternalLogger = {
|
|
196
|
+
info: vi.fn(),
|
|
197
|
+
level: 'info',
|
|
198
|
+
};
|
|
199
|
+
const logger = new SimpleLogger(external);
|
|
200
|
+
|
|
201
|
+
logger.info({ status: 'ok' });
|
|
202
|
+
|
|
203
|
+
expect(external.info).toHaveBeenCalledWith({ status: 'ok' }, undefined);
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
it('should call external logger with message and format args', () => {
|
|
207
|
+
const external: ExternalLogger = {
|
|
208
|
+
info: vi.fn(),
|
|
209
|
+
level: 'info',
|
|
210
|
+
};
|
|
211
|
+
const logger = new SimpleLogger(external);
|
|
212
|
+
|
|
213
|
+
logger.info('Hello %s', 'world');
|
|
214
|
+
|
|
215
|
+
expect(external.info).toHaveBeenCalledWith('Hello %s', 'world');
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
it('should skip logging if method does not exist on external logger', () => {
|
|
219
|
+
const external: ExternalLogger = {
|
|
220
|
+
info: vi.fn(),
|
|
221
|
+
level: 'info',
|
|
222
|
+
};
|
|
223
|
+
const logger = new SimpleLogger(external);
|
|
224
|
+
|
|
225
|
+
logger.debug('should not call');
|
|
226
|
+
|
|
227
|
+
expect(external.info).not.toHaveBeenCalled();
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
it('should warn on invalid log arguments', () => {
|
|
231
|
+
const external: ExternalLogger = {
|
|
232
|
+
info: vi.fn(),
|
|
233
|
+
level: 'info',
|
|
234
|
+
};
|
|
235
|
+
const logger = new SimpleLogger(external);
|
|
236
|
+
|
|
237
|
+
// Simulate invalid prepared args by calling with invalid types
|
|
238
|
+
(logger as any).callExternalLogMethod('info', [undefined]);
|
|
239
|
+
|
|
240
|
+
expect(consoleWarnSpy).toHaveBeenCalled();
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
describe('Level Management', () => {
|
|
245
|
+
it('should get current level', () => {
|
|
246
|
+
const logger = new SimpleLogger(null, { level: 'warn' });
|
|
247
|
+
expect(logger.getLevel()).toBe('warn');
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
it('should set new level', () => {
|
|
251
|
+
const logger = new SimpleLogger(null, { level: 'info' });
|
|
252
|
+
expect(logger.getLevel()).toBe('info');
|
|
253
|
+
|
|
254
|
+
logger.setLevel('error');
|
|
255
|
+
expect(logger.getLevel()).toBe('error');
|
|
256
|
+
|
|
257
|
+
logger.info('should not log');
|
|
258
|
+
logger.error('should log');
|
|
259
|
+
|
|
260
|
+
expect(consoleSpy).toHaveBeenCalledOnce();
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
it('should sync level with external logger', () => {
|
|
264
|
+
const external: ExternalLogger = {
|
|
265
|
+
info: vi.fn(),
|
|
266
|
+
level: 'info',
|
|
267
|
+
};
|
|
268
|
+
const logger = new SimpleLogger(external);
|
|
269
|
+
|
|
270
|
+
logger.setLevel('debug');
|
|
271
|
+
|
|
272
|
+
expect(external.level).toBe('debug');
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
it('should resolve level from external logger', () => {
|
|
276
|
+
const external: ExternalLogger = {
|
|
277
|
+
info: vi.fn(),
|
|
278
|
+
level: 'warn',
|
|
279
|
+
};
|
|
280
|
+
const logger = new SimpleLogger(external);
|
|
281
|
+
|
|
282
|
+
expect(logger.getLevel()).toBe('warn');
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
it('should prioritize explicit level over logger level', () => {
|
|
286
|
+
const external: ExternalLogger = {
|
|
287
|
+
info: vi.fn(),
|
|
288
|
+
level: 'warn',
|
|
289
|
+
};
|
|
290
|
+
const logger = new SimpleLogger(external, { level: 'debug' });
|
|
291
|
+
|
|
292
|
+
expect(logger.getLevel()).toBe('debug');
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
it('should ignore invalid level in external logger', () => {
|
|
296
|
+
const external: ExternalLogger = {
|
|
297
|
+
info: vi.fn(),
|
|
298
|
+
level: 'invalid_level' as any,
|
|
299
|
+
};
|
|
300
|
+
const logger = new SimpleLogger(external);
|
|
301
|
+
|
|
302
|
+
// Should fall back to default level
|
|
303
|
+
expect(logger.getLevel()).toBe('info');
|
|
304
|
+
});
|
|
21
305
|
});
|
|
22
306
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
307
|
+
describe('Enable/Disable', () => {
|
|
308
|
+
it('should disable all logging when disabled', () => {
|
|
309
|
+
const logger = new SimpleLogger(null, { level: 'trace' });
|
|
310
|
+
|
|
311
|
+
logger.disable();
|
|
312
|
+
|
|
313
|
+
logger.trace('should not log');
|
|
314
|
+
logger.info('should not log');
|
|
315
|
+
logger.error('should not log');
|
|
316
|
+
|
|
317
|
+
expect(consoleSpy).not.toHaveBeenCalled();
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
it('should enable logging when re-enabled', () => {
|
|
321
|
+
const logger = new SimpleLogger(null, { level: 'info' });
|
|
322
|
+
|
|
323
|
+
logger.disable();
|
|
324
|
+
logger.info('should not log');
|
|
325
|
+
|
|
326
|
+
logger.enable();
|
|
327
|
+
logger.info('should log');
|
|
328
|
+
|
|
329
|
+
expect(consoleSpy).toHaveBeenCalledOnce();
|
|
330
|
+
});
|
|
29
331
|
});
|
|
30
332
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
333
|
+
describe('Child Logger', () => {
|
|
334
|
+
it('should create child logger with merged bindings', () => {
|
|
335
|
+
const logger = new SimpleLogger(null, { bindings: { user: 'A' } });
|
|
336
|
+
const child = logger.child({ request: '123' });
|
|
337
|
+
|
|
338
|
+
child.info('child message');
|
|
339
|
+
|
|
340
|
+
const output = consoleSpy.mock.calls[0][0];
|
|
341
|
+
expect(output).toMatch(/user=A/);
|
|
342
|
+
expect(output).toMatch(/request=123/);
|
|
343
|
+
expect(output).toMatch(/child message/);
|
|
344
|
+
});
|
|
345
|
+
|
|
346
|
+
it('should call external logger .child() method if available', () => {
|
|
347
|
+
const childLogger: ExternalLogger = {
|
|
348
|
+
info: vi.fn(),
|
|
349
|
+
level: 'info',
|
|
350
|
+
};
|
|
351
|
+
const childFn = vi.fn(() => childLogger);
|
|
352
|
+
const external: ExternalLogger = {
|
|
353
|
+
level: 'info',
|
|
354
|
+
child: childFn,
|
|
355
|
+
info: vi.fn(),
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
const logger = new SimpleLogger(external);
|
|
359
|
+
const child = logger.child({ traceId: 'xyz' });
|
|
360
|
+
|
|
361
|
+
child.info('from child');
|
|
362
|
+
|
|
363
|
+
expect(childFn).toHaveBeenCalledWith({ traceId: 'xyz' });
|
|
364
|
+
expect(childLogger.info).toHaveBeenCalledWith('from child');
|
|
365
|
+
});
|
|
366
|
+
|
|
367
|
+
it('should create child without calling external .child() if not function', () => {
|
|
368
|
+
const external: ExternalLogger = {
|
|
369
|
+
info: vi.fn(),
|
|
370
|
+
level: 'info',
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
const logger = new SimpleLogger(external);
|
|
374
|
+
const child = logger.child({ req: '456' });
|
|
375
|
+
|
|
376
|
+
expect(child).toBeInstanceOf(SimpleLogger);
|
|
377
|
+
});
|
|
35
378
|
});
|
|
36
379
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
380
|
+
describe('Function Logging', () => {
|
|
381
|
+
it('should log function start', () => {
|
|
382
|
+
const logger = new SimpleLogger(null, { level: 'trace' });
|
|
383
|
+
|
|
384
|
+
logger.logFunctionStart('myFunction');
|
|
385
|
+
|
|
386
|
+
expect(consoleSpy).toHaveBeenCalled();
|
|
387
|
+
expect(consoleSpy.mock.calls[0][0]).toMatch(/Function start: myFunction/);
|
|
388
|
+
});
|
|
389
|
+
|
|
390
|
+
it('should log function end', () => {
|
|
391
|
+
const logger = new SimpleLogger(null, { level: 'trace' });
|
|
392
|
+
|
|
393
|
+
logger.logFunctionEnd('myFunction');
|
|
394
|
+
|
|
395
|
+
expect(consoleSpy).toHaveBeenCalled();
|
|
396
|
+
expect(consoleSpy.mock.calls[0][0]).toMatch(/Function end: myFunction/);
|
|
397
|
+
});
|
|
398
|
+
|
|
399
|
+
it('should use caller name if not provided', () => {
|
|
400
|
+
const logger = new SimpleLogger(null, { level: 'trace' });
|
|
401
|
+
|
|
402
|
+
logger.logFunctionStart();
|
|
403
|
+
logger.logFunctionEnd();
|
|
404
|
+
|
|
405
|
+
expect(consoleSpy).toHaveBeenCalledTimes(2);
|
|
406
|
+
});
|
|
407
|
+
});
|
|
408
|
+
|
|
409
|
+
describe('Flush Method', () => {
|
|
410
|
+
it('should return immediately if not external logger', async () => {
|
|
411
|
+
const logger = new SimpleLogger();
|
|
412
|
+
|
|
413
|
+
await expect(logger.flush()).resolves.toBeUndefined();
|
|
414
|
+
});
|
|
415
|
+
|
|
416
|
+
it('should call flush on external logger if available', async () => {
|
|
417
|
+
const flushFn = vi.fn((cb: (err?: Error) => void) => cb());
|
|
418
|
+
const external: ExternalLogger & { flush: typeof flushFn } = {
|
|
419
|
+
info: vi.fn(),
|
|
420
|
+
level: 'info',
|
|
421
|
+
flush: flushFn,
|
|
422
|
+
};
|
|
423
|
+
|
|
424
|
+
const logger = new SimpleLogger(external);
|
|
425
|
+
|
|
426
|
+
await logger.flush();
|
|
427
|
+
|
|
428
|
+
expect(flushFn).toHaveBeenCalled();
|
|
429
|
+
});
|
|
430
|
+
|
|
431
|
+
it('should handle flush errors gracefully', async () => {
|
|
432
|
+
const flushFn = vi.fn((cb: (err?: Error) => void) => cb(new Error('Flush error')));
|
|
433
|
+
const external: ExternalLogger & { flush: typeof flushFn } = {
|
|
434
|
+
info: vi.fn(),
|
|
435
|
+
level: 'info',
|
|
436
|
+
flush: flushFn,
|
|
437
|
+
};
|
|
438
|
+
|
|
439
|
+
const logger = new SimpleLogger(external);
|
|
440
|
+
|
|
441
|
+
await expect(logger.flush()).resolves.toBeUndefined();
|
|
442
|
+
});
|
|
443
|
+
|
|
444
|
+
it('should return immediately if flush is not a function', async () => {
|
|
445
|
+
const external: ExternalLogger = {
|
|
446
|
+
info: vi.fn(),
|
|
447
|
+
level: 'info',
|
|
448
|
+
};
|
|
449
|
+
|
|
450
|
+
const logger = new SimpleLogger(external);
|
|
451
|
+
|
|
452
|
+
await expect(logger.flush()).resolves.toBeUndefined();
|
|
453
|
+
});
|
|
46
454
|
});
|
|
47
455
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
456
|
+
describe('Silent Level', () => {
|
|
457
|
+
it('should not log anything at silent level', () => {
|
|
458
|
+
const logger = new SimpleLogger(null, { level: 'silent' });
|
|
459
|
+
|
|
460
|
+
logger.trace('should not log');
|
|
461
|
+
logger.debug('should not log');
|
|
462
|
+
logger.info('should not log');
|
|
463
|
+
logger.warn('should not log');
|
|
464
|
+
logger.error('should not log');
|
|
465
|
+
logger.fatal('should not log');
|
|
466
|
+
|
|
467
|
+
expect(consoleSpy).not.toHaveBeenCalled();
|
|
468
|
+
});
|
|
52
469
|
});
|
|
53
470
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
471
|
+
describe('Level Resolution', () => {
|
|
472
|
+
it('should handle logger without level property', () => {
|
|
473
|
+
const external: ExternalLogger = {
|
|
474
|
+
info: vi.fn(),
|
|
475
|
+
};
|
|
476
|
+
|
|
477
|
+
const logger = new SimpleLogger(external);
|
|
478
|
+
|
|
479
|
+
expect(logger.getLevel()).toBe('info');
|
|
480
|
+
});
|
|
481
|
+
|
|
482
|
+
it('should not update level on external logger without level property', () => {
|
|
483
|
+
const external: ExternalLogger = {
|
|
484
|
+
info: vi.fn(),
|
|
485
|
+
};
|
|
486
|
+
|
|
487
|
+
const logger = new SimpleLogger(external);
|
|
488
|
+
logger.setLevel('debug');
|
|
489
|
+
|
|
490
|
+
expect(external.level).toBeUndefined();
|
|
491
|
+
});
|
|
66
492
|
});
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
493
|
+
|
|
494
|
+
describe('Factory with Transport', () => {
|
|
495
|
+
it('should pass transport option to factory', () => {
|
|
496
|
+
const mockLogger: ExternalLogger = {
|
|
497
|
+
info: vi.fn(),
|
|
498
|
+
level: 'info',
|
|
499
|
+
};
|
|
500
|
+
const factory: LoggerFactory = vi.fn(() => mockLogger);
|
|
501
|
+
const transport = { target: 'pino/file' };
|
|
502
|
+
|
|
503
|
+
new SimpleLogger(factory, { level: 'info', transport });
|
|
504
|
+
|
|
505
|
+
expect(factory).toHaveBeenCalledWith({
|
|
506
|
+
level: 'info',
|
|
507
|
+
transport,
|
|
508
|
+
});
|
|
509
|
+
});
|
|
80
510
|
});
|
|
81
511
|
});
|
|
@@ -230,11 +230,28 @@ export default class SimpleLogger {
|
|
|
230
230
|
if (prepared !== null) {
|
|
231
231
|
const [first, ...rest] = prepared;
|
|
232
232
|
if (typeof first === 'string') {
|
|
233
|
-
|
|
233
|
+
// Call with string message signature: (msg: string, ...args: unknown[])
|
|
234
|
+
method.call(this.logger, first, ...rest);
|
|
234
235
|
} else if (typeof first === 'object') {
|
|
236
|
+
// Call with object signature: (obj: object, msg?: string, ...args: unknown[])
|
|
235
237
|
const [second, ...otherRest] = rest;
|
|
236
|
-
|
|
237
|
-
|
|
238
|
+
if (typeof second === 'string') {
|
|
239
|
+
// Call with both object and message
|
|
240
|
+
(method as (obj: object, msg: string, ...args: unknown[]) => void).call(
|
|
241
|
+
this.logger,
|
|
242
|
+
first,
|
|
243
|
+
second,
|
|
244
|
+
...otherRest
|
|
245
|
+
);
|
|
246
|
+
} else {
|
|
247
|
+
// Call with object only (msg is undefined)
|
|
248
|
+
(method as (obj: object, msg?: string, ...args: unknown[]) => void).call(
|
|
249
|
+
this.logger,
|
|
250
|
+
first,
|
|
251
|
+
undefined,
|
|
252
|
+
...otherRest
|
|
253
|
+
);
|
|
254
|
+
}
|
|
238
255
|
}
|
|
239
256
|
} else {
|
|
240
257
|
console.warn(`Invalid log arguments for "${level}"`, args);
|
|
@@ -376,10 +393,17 @@ export default class SimpleLogger {
|
|
|
376
393
|
return;
|
|
377
394
|
}
|
|
378
395
|
|
|
379
|
-
const logger = this.logger as ExternalLogger & {
|
|
396
|
+
const logger = this.logger as ExternalLogger & {
|
|
397
|
+
flush?: (callback: (err?: Error) => void) => void;
|
|
398
|
+
};
|
|
399
|
+
|
|
380
400
|
if (typeof logger.flush === 'function') {
|
|
381
|
-
|
|
382
|
-
|
|
401
|
+
try {
|
|
402
|
+
const promisifiedFlush = util.promisify(logger.flush.bind(logger));
|
|
403
|
+
return await promisifiedFlush();
|
|
404
|
+
} catch {
|
|
405
|
+
// Ignore flush errors - they're not critical
|
|
406
|
+
}
|
|
383
407
|
}
|
|
384
408
|
}
|
|
385
409
|
}
|
package/tsconfig.json
CHANGED
package/vitest.config.ts
CHANGED
|
@@ -12,6 +12,7 @@ export default defineConfig({
|
|
|
12
12
|
include: ['src/**/*.test.ts'],
|
|
13
13
|
exclude: ['node_modules/**', 'dist/**', 'docs/**'],
|
|
14
14
|
coverage: {
|
|
15
|
+
enabled: true,
|
|
15
16
|
provider: 'v8',
|
|
16
17
|
reporter: ['text', 'json', 'html', 'lcov'],
|
|
17
18
|
include: ['src/**/*.ts'],
|
|
@@ -22,7 +23,6 @@ export default defineConfig({
|
|
|
22
23
|
'**/*.test.ts',
|
|
23
24
|
'**/*.config.ts',
|
|
24
25
|
'**/*.config.js',
|
|
25
|
-
'src/__test__/**'
|
|
26
26
|
],
|
|
27
27
|
thresholds: {
|
|
28
28
|
lines: 80,
|