scribelog 2.1.0-beta.0 → 2.1.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/README.md +64 -21
- package/dist/format.js +53 -21
- package/dist/format.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js.map +1 -1
- package/dist/levels.d.ts +1 -1
- package/dist/logger.d.ts +30 -3
- package/dist/logger.js +444 -44
- package/dist/logger.js.map +1 -1
- package/dist/transports/console.js +49 -17
- package/dist/transports/console.js.map +1 -1
- package/dist/types.d.ts +40 -4
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Scribelog 🪵📝
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/scribelog)
|
|
4
|
-
[](https://www.npmjs.com/package/scribelog)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
[](https://github.com/tolongames/scribelog/actions/workflows/node.js.yml) <!-- Zaktualizuj URL, jeśli trzeba -->
|
|
7
7
|
|
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
- **Framework adapters (Express, Koa, Fastify, NestJS, Next.js):**
|
|
22
22
|
Ready-to-use middleware/hooks/interceptors for request/response logging with automatic requestId (AsyncLocalStorage), duration, status, and framework tags. Minimal boilerplate.
|
|
23
23
|
- **Profiling & Timing:** Lightweight high-resolution timers (profile/time APIs), including sync/async helpers and start/end merging of metadata.
|
|
24
|
+
- Configurable levels and thresholds: promote slow operations to warn/error via `thresholdWarnMs`/`thresholdErrorMs` or custom `getLevel(duration, meta)`.
|
|
25
|
+
- Concurrency-safe timers, orphan cleanup (TTL/maxActive), fast path, configurable tags/fields, and metrics hook.
|
|
24
26
|
- **Automatic Error Handling:** Optionally catch and log `uncaughtException` and `unhandledRejection` events, including stack traces.
|
|
25
27
|
- **Remote Transports (HTTP, WebSocket, TCP, UDP):**
|
|
26
28
|
Send logs over the network to ELK/Logstash, Graylog, Datadog, or custom collectors. Supports batching (AsyncBatch) and gzip (HTTP).
|
|
@@ -28,6 +30,8 @@
|
|
|
28
30
|
- **Asynchronous Batch Logging:** Buffer and batch log messages before sending them to a target transport to reduce I/O overhead. See examples in Basic Configuration.
|
|
29
31
|
- **Automatic Request/Trace ID Propagation:** Automatically attaches a request/trace ID to every log message using AsyncLocalStorage. See usage in Basic Configuration.
|
|
30
32
|
- **Sensitive Data Masking:** Mask sensitive fields (passwords, tokens, API keys) with the built‑in `format.maskSensitive` formatter. See usage in Basic Configuration.
|
|
33
|
+
- **Logger Lifecycle:** Graceful shutdown via `logger.close()`; optional auto-close on `beforeExit`.
|
|
34
|
+
- **Non-invasive Error Listeners:** Handlers are registered via `process.prependListener`/`process.on` (no removing foreign listeners), configurable modes.
|
|
31
35
|
- **TypeScript First:** Written entirely in TypeScript for type safety and excellent editor autocompletion.
|
|
32
36
|
|
|
33
37
|
---
|
|
@@ -91,37 +95,69 @@ Error: Test error
|
|
|
91
95
|
|
|
92
96
|
## ⏱️ Profiling & Timing
|
|
93
97
|
|
|
94
|
-
|
|
98
|
+
High‑resolution timers for measuring any code block, with smart defaults and advanced controls.
|
|
99
|
+
|
|
100
|
+
Configuration (examples):
|
|
95
101
|
|
|
96
102
|
```ts
|
|
97
|
-
|
|
98
|
-
logger.profile('db');
|
|
99
|
-
await db.query('SELECT 1');
|
|
100
|
-
logger.profileEnd('db', { query: 'SELECT 1' }); // logs { profileLabel, durationMs, tags: ['profile'], ... }
|
|
103
|
+
import { createLogger } from 'scribelog';
|
|
101
104
|
|
|
102
|
-
|
|
105
|
+
const logger = createLogger({
|
|
106
|
+
profiler: {
|
|
107
|
+
// Level heuristics
|
|
108
|
+
level: 'debug', // base level for profiling logs (optional)
|
|
109
|
+
thresholdWarnMs: 200,
|
|
110
|
+
thresholdErrorMs: 1000,
|
|
111
|
+
// getLevel: (durationMs, meta) => (durationMs > 500 ? 'warn' : 'info'),
|
|
112
|
+
// ...existing code...
|
|
113
|
+
// Metrics hook (no extra log)
|
|
114
|
+
onMeasure: (e) => {
|
|
115
|
+
// e = { label, durationMs, success?: boolean, level, tags?, requestId?, meta, key? }
|
|
116
|
+
// Send to Prometheus, StatsD, etc.
|
|
117
|
+
},
|
|
118
|
+
// Optional: filter/trim metric event before onMeasure
|
|
119
|
+
onMeasureFilter: (e) => {
|
|
120
|
+
if (e.meta) {
|
|
121
|
+
const { error, stack, ...rest } = e.meta;
|
|
122
|
+
e.meta = rest; // drop heavy fields
|
|
123
|
+
}
|
|
124
|
+
return e; // or return null to drop the event entirely
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Usage patterns:
|
|
131
|
+
|
|
132
|
+
```ts
|
|
133
|
+
// 1) Manual start/stop with handle (best for concurrency)
|
|
134
|
+
const h = logger.profile('db', { query: 'SELECT 1' });
|
|
135
|
+
// ... work ...
|
|
136
|
+
logger.profileEnd(h, { rows: 10 }); // merges start+end meta and logs
|
|
137
|
+
|
|
138
|
+
// 2) Aliases (still handle-capable via time/timeEnd)
|
|
103
139
|
logger.time('calc');
|
|
104
140
|
// ... work ...
|
|
105
|
-
logger.timeEnd('calc');
|
|
141
|
+
logger.timeEnd('calc'); // ends the latest 'calc' via LIFO per label
|
|
106
142
|
|
|
107
|
-
// Sync block
|
|
143
|
+
// 3) Sync block helper
|
|
108
144
|
const value = logger.timeSync('compute', () => 2 + 2, { component: 'math' });
|
|
109
145
|
|
|
110
|
-
// Async block (logs success or error, rethrows on error)
|
|
111
|
-
await logger.timeAsync(
|
|
112
|
-
'
|
|
113
|
-
|
|
114
|
-
return await getUser(42);
|
|
115
|
-
},
|
|
116
|
-
{ component: 'users' }
|
|
117
|
-
);
|
|
146
|
+
// 4) Async block helper (logs success or error, rethrows on error)
|
|
147
|
+
await logger.timeAsync('load-user', async () => getUser(42), {
|
|
148
|
+
component: 'users',
|
|
149
|
+
});
|
|
118
150
|
```
|
|
119
151
|
|
|
120
|
-
|
|
152
|
+
Notes:
|
|
153
|
+
|
|
154
|
+
- Concurrency-safe: profile(label) returns a unique handle; profileEnd(handle) ends that exact timer. If you pass a plain label, LIFO per label is used.
|
|
121
155
|
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
-
|
|
156
|
+
- Fast path: when profiling is effectively disabled (no debug and no thresholds/getLevel/profiler.level), time\*/profile calls skip overhead and do not log.
|
|
157
|
+
- Orphan cleanup: timers not ended in time are removed by TTL sweep; the oldest timers can be dropped if maxActiveProfiles is exceeded. Stop the sweeper via logger.dispose().
|
|
158
|
+
- Tags & fields: tagsDefault/tagsMode and fieldsDefault are applied consistently; tags are deduplicated.
|
|
159
|
+
- Add `profiler.onMeasureFilter(event)` to trim or drop heavy fields before `onMeasure` runs.
|
|
160
|
+
- `onMeasure(event)` is still called after each measurement (no extra log produced).
|
|
125
161
|
|
|
126
162
|
---
|
|
127
163
|
|
|
@@ -142,6 +178,8 @@ Configure your logger via `createLogger(options)`. Key options:
|
|
|
142
178
|
- `transports`: Array of `new transports.Console({...})` or `new transports.File({...})`. Default is one Console transport.
|
|
143
179
|
- `defaultMeta`: An object with data to add to every log message.
|
|
144
180
|
- `handleExceptions`, `handleRejections`, `exitOnError`: For automatic error catching.
|
|
181
|
+
- `exceptionHandlerMode` / `rejectionHandlerMode`: `'prepend' | 'append'` — how to register process listeners (default: `'prepend'`).
|
|
182
|
+
- `autoCloseOnBeforeExit`: `boolean` — automatically call `logger.close()` on Node’s `beforeExit` (default: `true`).
|
|
145
183
|
|
|
146
184
|
**Example 1: Logging JSON to a File**
|
|
147
185
|
|
|
@@ -396,6 +434,11 @@ Notes:
|
|
|
396
434
|
- Redact secrets before sending: format.maskSensitive([...]).
|
|
397
435
|
- requestId from async context is automatically attached to logs.
|
|
398
436
|
|
|
437
|
+
## 🔌 Lifecycle: close() & beforeExit
|
|
438
|
+
|
|
439
|
+
- `await logger.close()`: flushes and closes all transports (supports async), stops internal profilers’ cleanup, and removes the internal `beforeExit` hook.
|
|
440
|
+
- `autoCloseOnBeforeExit` (default true): when enabled, the logger registers a `beforeExit` hook that calls `close()` automatically.
|
|
441
|
+
|
|
399
442
|
---
|
|
400
443
|
|
|
401
444
|
## 📚 Future Work
|
package/dist/format.js
CHANGED
|
@@ -341,15 +341,29 @@ const simple = (options = {}) => {
|
|
|
341
341
|
exports.simple = simple;
|
|
342
342
|
// --- Funkcja Kompozycyjna ---
|
|
343
343
|
const combine = (...formats) => {
|
|
344
|
+
/**
|
|
345
|
+
* Kontrakt:
|
|
346
|
+
* - Formatery powinny modyfikować przekazany obiekt 'info' in-place i zwracać ten sam obiekt,
|
|
347
|
+
* lub mogą zwrócić nowy obiekt (wtedy pipeline przyjmie referencję do nowego).
|
|
348
|
+
* - Jeśli formatter zwraca string, pipeline kończy i zwraca ten string.
|
|
349
|
+
*/
|
|
344
350
|
return (info) => {
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
351
|
+
// Unikamy początkowej kopii — pracujemy na wejściowym obiekcie
|
|
352
|
+
let currentInfo = info;
|
|
353
|
+
for (const fmt of formats) {
|
|
354
|
+
const result = fmt(currentInfo);
|
|
348
355
|
if (typeof result === 'string') {
|
|
356
|
+
// Formatter zakończył pipeline stringiem
|
|
349
357
|
return result;
|
|
350
358
|
}
|
|
351
|
-
|
|
352
|
-
|
|
359
|
+
if (result && typeof result === 'object') {
|
|
360
|
+
// Formatter mógł zwrócić nowy obiekt – przełącz referencję
|
|
361
|
+
if (result !== currentInfo) {
|
|
362
|
+
currentInfo = result;
|
|
363
|
+
}
|
|
364
|
+
// Jeśli zwrócił ten sam obiekt, kontynuujemy bez alokacji
|
|
365
|
+
}
|
|
366
|
+
// Gdy formatter zwróci null/undefined, pozostaw currentInfo bez zmian
|
|
353
367
|
}
|
|
354
368
|
return currentInfo;
|
|
355
369
|
};
|
|
@@ -365,22 +379,37 @@ exports.defaultSimpleFormat = (0, exports.combine)((0, exports.errors)({ stack:
|
|
|
365
379
|
* @param mask - Wartość maskująca (np. '***' lub funkcja)
|
|
366
380
|
*/
|
|
367
381
|
function maskSensitive(fields = ['password', 'token', 'secret'], mask = '***') {
|
|
382
|
+
const maskFn = (value, key) => typeof mask === 'function'
|
|
383
|
+
? mask(value, key)
|
|
384
|
+
: mask;
|
|
368
385
|
// Rekurencyjnie maskuj pola w obiekcie
|
|
369
|
-
function
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
386
|
+
function cloneAndMask(value) {
|
|
387
|
+
// Proste typy – zwróć wprost
|
|
388
|
+
if (value === null ||
|
|
389
|
+
typeof value !== 'object' ||
|
|
390
|
+
value instanceof Date ||
|
|
391
|
+
value instanceof RegExp ||
|
|
392
|
+
value instanceof Error) {
|
|
393
|
+
return value;
|
|
394
|
+
}
|
|
395
|
+
if (Array.isArray(value)) {
|
|
396
|
+
return value.map((v) => cloneAndMask(v));
|
|
397
|
+
}
|
|
398
|
+
const out = {};
|
|
399
|
+
for (const k of Object.keys(value)) {
|
|
400
|
+
if (fields.includes(k)) {
|
|
401
|
+
out[k] = maskFn(value[k], k);
|
|
402
|
+
}
|
|
403
|
+
else {
|
|
404
|
+
out[k] = cloneAndMask(value[k]);
|
|
378
405
|
}
|
|
379
406
|
}
|
|
380
|
-
return
|
|
407
|
+
return out;
|
|
381
408
|
}
|
|
382
409
|
return (info) => {
|
|
383
|
-
//
|
|
410
|
+
// Nie modyfikuj źródła — zacznij od płytkiej kopii
|
|
411
|
+
const out = Object.assign({}, info);
|
|
412
|
+
// Tych pól nie maskujemy ani nie dotykamy (pozostają bez zmian)
|
|
384
413
|
const forbidden = new Set([
|
|
385
414
|
'level',
|
|
386
415
|
'message',
|
|
@@ -396,15 +425,18 @@ function maskSensitive(fields = ['password', 'token', 'secret'], mask = '***') {
|
|
|
396
425
|
for (const key in info) {
|
|
397
426
|
if (Object.prototype.hasOwnProperty.call(info, key) &&
|
|
398
427
|
!forbidden.has(key)) {
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
}
|
|
428
|
+
const val = info[key];
|
|
429
|
+
// Jeśli samo pole jest wrażliwe – zamaskuj całe pole (bez zaglądania w głąb)
|
|
402
430
|
if (fields.includes(key)) {
|
|
403
|
-
|
|
431
|
+
out[key] = maskFn(val, key);
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
// W przeciwnym razie sklonuj i zamaskuj wnętrze (rekurencyjnie)
|
|
435
|
+
out[key] = cloneAndMask(val);
|
|
404
436
|
}
|
|
405
437
|
}
|
|
406
438
|
}
|
|
407
|
-
return
|
|
439
|
+
return out;
|
|
408
440
|
};
|
|
409
441
|
}
|
|
410
442
|
// ...existing code...
|
package/dist/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ import { createLogger as _createLogger, Scribelog as _Scribelog } from './logger
|
|
|
2
2
|
import type { LoggerInterface as _LoggerInterface, LoggerOptions as _LoggerOptions, LogInfo, // Dodaj LogInfo tutaj
|
|
3
3
|
Transport as _Transport, LogFormat as _LogFormat, FileTransportOptions as _FileTransportOptions } from './types';
|
|
4
4
|
import { AsyncBatchTransport } from './transports/asyncBatch';
|
|
5
|
-
import { standardLevels,
|
|
5
|
+
import { standardLevels, LogLevels } from './levels';
|
|
6
|
+
export type { LogLevel } from './types';
|
|
6
7
|
import { ConsoleTransport as _ConsoleTransport } from './transports/console';
|
|
7
8
|
import type { ConsoleTransportOptions as _ConsoleTransportOptions } from './transports/console';
|
|
8
9
|
import { FileTransport as _FileTransport } from './transports/file';
|
|
@@ -18,6 +19,7 @@ import { HttpTransport } from './transports/http';
|
|
|
18
19
|
import { WebSocketTransport } from './transports/websocket';
|
|
19
20
|
import { TcpTransport } from './transports/tcp';
|
|
20
21
|
import { UdpTransport } from './transports/udp';
|
|
22
|
+
export type { ProfileEvent } from './types';
|
|
21
23
|
export declare const createLogger: typeof _createLogger;
|
|
22
24
|
export declare const Scribelog: typeof _Scribelog;
|
|
23
25
|
export * from './requestContext';
|
|
@@ -25,7 +27,8 @@ export type Logger = _LoggerInterface;
|
|
|
25
27
|
export type LoggerOptions = _LoggerOptions;
|
|
26
28
|
export type { AsyncBatchTransportOptions } from './transports/asyncBatch';
|
|
27
29
|
export { standardLevels };
|
|
28
|
-
export type {
|
|
30
|
+
export type { LogLevels };
|
|
31
|
+
export type { ProfileHandle } from './types';
|
|
29
32
|
export declare const transports: {
|
|
30
33
|
Console: typeof _ConsoleTransport;
|
|
31
34
|
File: typeof _FileTransport;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,qCAGkB;AAUlB,wDAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,qCAGkB;AAUlB,wDAA8D;AAC9D,qCAAqD;AAiC5C,+FAjCA,uBAAc,OAiCA;AA/BvB,kDAA6E;AAE7E,kDAAkD;AAClD,4CAAoE;AACpE,wBAAwB;AACxB,kDAAoC;AACpC,kDAAwD;AACxD,0CAAgD;AAChD,gDAA6D;AAC7D,wCAAqD;AACrD,gDAAyD;AACzD,0CAAwD;AACxD,0CAAuD;AACvD,4CAAkD;AAClD,sDAA4D;AAC5D,0CAAgD;AAChD,0CAAgD;AAIhD,mCAAmC;AACtB,QAAA,YAAY,GAAG,qBAAa,CAAC;AAC7B,QAAA,SAAS,GAAG,kBAAU,CAAC;AACpC,mDAAiC;AAajC,yEAAyE;AACzE,uBAAuB;AACV,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,0BAAiB;IAC1B,IAAI,EAAE,oBAAc;IACpB,UAAU,EAAE,gCAAmB;IAC/B,OAAO,EAAE,0BAAgB;IACzB,GAAG,EAAE,kBAAY;IACjB,IAAI,EAAE,oBAAa;IACnB,SAAS,EAAE,8BAAkB;IAC7B,GAAG,EAAE,kBAAY;IACjB,GAAG,EAAE,kBAAY;CAClB,CAAC;AAIF,wBAAwB;AAExB,sBAAsB;AACT,QAAA,MAAM,GAAG,OAAO,CAAC;AAEjB,QAAA,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAOtC,QAAA,QAAQ,GAAG;IACtB,OAAO,EAAE,EAAE,gBAAgB,EAAE,iCAAuB,EAAE;IACtD,GAAG,EAAE,EAAE,gBAAgB,EAAE,yBAAmB,EAAE;IAC9C,OAAO,EAAE,EAAE,YAAY,EAAE,6BAAmB,EAAE;IAC9C,IAAI,EAAE,EAAE,iBAAiB,EAAE,4BAAqB,EAAE;IAClD,IAAI,EAAE,EAAE,gBAAgB,EAAE,2BAAoB,EAAE;CACjD,CAAC"}
|
package/dist/levels.d.ts
CHANGED
package/dist/logger.d.ts
CHANGED
|
@@ -8,23 +8,49 @@ export declare class Scribelog implements LoggerInterface {
|
|
|
8
8
|
levels: LogLevels;
|
|
9
9
|
level: LogLevel;
|
|
10
10
|
private transports;
|
|
11
|
+
private profilerOptions;
|
|
11
12
|
private profiles;
|
|
12
13
|
private format;
|
|
13
14
|
private defaultMeta?;
|
|
14
15
|
private options;
|
|
15
16
|
private profileStartMeta;
|
|
17
|
+
private profileSeq;
|
|
18
|
+
private labelStacks;
|
|
19
|
+
private keyToLabel;
|
|
20
|
+
private cleanupTimer?;
|
|
21
|
+
private beforeExitHandler?;
|
|
16
22
|
private exitOnError;
|
|
17
23
|
private exceptionHandler?;
|
|
18
24
|
private rejectionHandler?;
|
|
19
25
|
[level: string]: ((message: any, ...args: any[]) => void) | any;
|
|
20
26
|
constructor(options?: LoggerOptions, internalParentLevels?: LogLevels);
|
|
27
|
+
private emitProfileEvent;
|
|
28
|
+
private composeProfileTags;
|
|
29
|
+
private applyDefaultProfileFields;
|
|
30
|
+
private shouldStartProfile;
|
|
31
|
+
private makeProfileKey;
|
|
32
|
+
private pushLabelKey;
|
|
33
|
+
private popLabelKey;
|
|
34
|
+
private removeLabelKey;
|
|
35
|
+
private removeProfileByKey;
|
|
36
|
+
private cleanupProfiles;
|
|
21
37
|
log(level: LogLevel, message: any, ...args: any[]): void;
|
|
22
|
-
profile(label: string, meta?: Record<string, any>):
|
|
23
|
-
|
|
38
|
+
profile(label: string, meta?: Record<string, any>): {
|
|
39
|
+
key: string;
|
|
40
|
+
label: string;
|
|
41
|
+
};
|
|
42
|
+
profileEnd(labelOrHandle: string | {
|
|
43
|
+
key: string;
|
|
44
|
+
label: string;
|
|
45
|
+
}, meta?: Record<string, any>): void;
|
|
24
46
|
time(label: string, meta?: Record<string, any>): void;
|
|
25
|
-
timeEnd(
|
|
47
|
+
timeEnd(labelOrHandle: string | {
|
|
48
|
+
key: string;
|
|
49
|
+
label: string;
|
|
50
|
+
}, meta?: Record<string, any>): void;
|
|
26
51
|
timeSync<T>(label: string, fn: () => T, meta?: Record<string, any>): T;
|
|
27
52
|
timeAsync<T>(label: string, fn: () => Promise<T>, meta?: Record<string, any>): Promise<T>;
|
|
53
|
+
close(): Promise<void>;
|
|
28
54
|
logEntry(entry: LogEntryInput): void;
|
|
29
55
|
isLevelEnabled(level: LogLevel): boolean;
|
|
30
56
|
addTransport(transport: Transport): void;
|
|
@@ -32,6 +58,7 @@ export declare class Scribelog implements LoggerInterface {
|
|
|
32
58
|
private logError;
|
|
33
59
|
private formatError;
|
|
34
60
|
removeExceptionHandlers(): void;
|
|
61
|
+
dispose(): void;
|
|
35
62
|
private processAndTransport;
|
|
36
63
|
private isTransportLevelEnabled;
|
|
37
64
|
}
|
package/dist/logger.js
CHANGED
|
@@ -65,8 +65,13 @@ const requestContext_1 = require("./requestContext");
|
|
|
65
65
|
class Scribelog {
|
|
66
66
|
// Zmieniony konstruktor akceptujący opcjonalne poziomy rodzica
|
|
67
67
|
constructor(options = {}, internalParentLevels) {
|
|
68
|
+
var _a, _b;
|
|
68
69
|
this.profiles = new Map();
|
|
69
70
|
this.profileStartMeta = new Map();
|
|
71
|
+
// --- POCZĄTEK ZMIANY: obsługa współbieżności/kolizji ---
|
|
72
|
+
this.profileSeq = 0;
|
|
73
|
+
this.labelStacks = new Map(); // label -> stos kluczy
|
|
74
|
+
this.keyToLabel = new Map(); // key -> label (odwrotna mapa)
|
|
70
75
|
this.options = Object.assign({}, options); // Zapisz kopię ORYGINALNYCH opcji
|
|
71
76
|
// --- Użyj poziomów rodzica LUB połącz standardowe z opcjami ---
|
|
72
77
|
if (internalParentLevels) {
|
|
@@ -112,7 +117,33 @@ class Scribelog {
|
|
|
112
117
|
: [new console_1.ConsoleTransport()];
|
|
113
118
|
this.format = options.format || format.defaultSimpleFormat;
|
|
114
119
|
this.defaultMeta = options.defaultMeta;
|
|
115
|
-
this.exitOnError = options.exitOnError
|
|
120
|
+
this.exitOnError = options.exitOnError === true;
|
|
121
|
+
this.profilerOptions = options.profiler || {};
|
|
122
|
+
const ttlMs = this.profilerOptions.ttlMs;
|
|
123
|
+
const cleanupEvery = (_a = this.profilerOptions.cleanupIntervalMs) !== null && _a !== void 0 ? _a : 60000; // domyślnie 60s
|
|
124
|
+
const hasCleanup = typeof ttlMs === 'number' && ttlMs > 0;
|
|
125
|
+
if (hasCleanup) {
|
|
126
|
+
this.cleanupTimer = setInterval(() => {
|
|
127
|
+
try {
|
|
128
|
+
this.cleanupProfiles();
|
|
129
|
+
}
|
|
130
|
+
catch (e) {
|
|
131
|
+
console.warn('[scribelog] cleanupProfiles failed:', e);
|
|
132
|
+
}
|
|
133
|
+
}, cleanupEvery);
|
|
134
|
+
// Nie blokuj procesu
|
|
135
|
+
if (typeof ((_b = this.cleanupTimer) === null || _b === void 0 ? void 0 : _b.unref) === 'function') {
|
|
136
|
+
this.cleanupTimer.unref();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const autoClose = options.autoCloseOnBeforeExit !== false;
|
|
140
|
+
if (autoClose) {
|
|
141
|
+
this.beforeExitHandler = () => {
|
|
142
|
+
// nie czekamy blokująco – zainicjuj async close
|
|
143
|
+
this.close().catch((e) => console.error('[scribelog] Error in logger.close on beforeExit:', e));
|
|
144
|
+
};
|
|
145
|
+
process.on('beforeExit', this.beforeExitHandler);
|
|
146
|
+
}
|
|
116
147
|
// --- Dynamiczne tworzenie metod dla WSZYSTKICH poziomów ---
|
|
117
148
|
Object.keys(this.levels).forEach((levelName) => {
|
|
118
149
|
// Usunięto warunek `if (levelName in this)`, aby umożliwić nadpisywanie
|
|
@@ -137,8 +168,9 @@ class Scribelog {
|
|
|
137
168
|
}
|
|
138
169
|
});
|
|
139
170
|
};
|
|
140
|
-
|
|
141
|
-
|
|
171
|
+
// REFAKTOR: nie usuwaj cudzych listenerów
|
|
172
|
+
const excMethod = options.exceptionHandlerMode === 'append' ? 'on' : 'prependListener';
|
|
173
|
+
process[excMethod]('uncaughtException', this.exceptionHandler);
|
|
142
174
|
}
|
|
143
175
|
if (options.handleRejections) {
|
|
144
176
|
this.rejectionHandler = (reason, _promise) => {
|
|
@@ -154,8 +186,200 @@ class Scribelog {
|
|
|
154
186
|
}
|
|
155
187
|
});
|
|
156
188
|
};
|
|
157
|
-
|
|
158
|
-
process
|
|
189
|
+
const rejMethod = options.rejectionHandlerMode === 'append' ? 'on' : 'prependListener';
|
|
190
|
+
process[rejMethod]('unhandledRejection', this.rejectionHandler);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
emitProfileEvent(params) {
|
|
194
|
+
var _a, _b;
|
|
195
|
+
const cb = (_a = this.profilerOptions) === null || _a === void 0 ? void 0 : _a.onMeasure;
|
|
196
|
+
if (typeof cb !== 'function')
|
|
197
|
+
return;
|
|
198
|
+
try {
|
|
199
|
+
let event = {
|
|
200
|
+
label: params.label,
|
|
201
|
+
durationMs: params.durationMs,
|
|
202
|
+
success: params.success,
|
|
203
|
+
level: params.level,
|
|
204
|
+
tags: Array.isArray(params.metaOut.tags)
|
|
205
|
+
? params.metaOut.tags
|
|
206
|
+
: undefined,
|
|
207
|
+
requestId: (params.metaOut &&
|
|
208
|
+
typeof params.metaOut.requestId === 'string' &&
|
|
209
|
+
params.metaOut.requestId) ||
|
|
210
|
+
(0, requestContext_1.getRequestId)(),
|
|
211
|
+
meta: Object.assign({}, params.metaOut),
|
|
212
|
+
key: params.key,
|
|
213
|
+
};
|
|
214
|
+
// NOWE: filtr metryki
|
|
215
|
+
const filter = (_b = this.profilerOptions) === null || _b === void 0 ? void 0 : _b.onMeasureFilter;
|
|
216
|
+
if (typeof filter === 'function') {
|
|
217
|
+
try {
|
|
218
|
+
const filtered = filter(event);
|
|
219
|
+
if (filtered === null) {
|
|
220
|
+
// Odrzuć event metryczny
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
if (filtered && typeof filtered === 'object') {
|
|
224
|
+
event = filtered;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
catch (e) {
|
|
228
|
+
console.warn('[scribelog] profiler.onMeasureFilter hook threw:', e);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
cb(event);
|
|
232
|
+
}
|
|
233
|
+
catch (e) {
|
|
234
|
+
// Nigdy nie przerywaj logowania przez błąd hooka
|
|
235
|
+
console.warn('[scribelog] profiler.onMeasure hook threw:', e);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
composeProfileTags(existing) {
|
|
239
|
+
const profiler = this.profilerOptions || {};
|
|
240
|
+
const base = ['profile'];
|
|
241
|
+
const def = Array.isArray(profiler.tagsDefault) ? profiler.tagsDefault : [];
|
|
242
|
+
const provided = Array.isArray(existing) ? existing : [];
|
|
243
|
+
const mode = profiler.tagsMode || 'append';
|
|
244
|
+
let ordered;
|
|
245
|
+
switch (mode) {
|
|
246
|
+
case 'replace':
|
|
247
|
+
ordered = provided.length ? provided : def.length ? def : base;
|
|
248
|
+
break;
|
|
249
|
+
case 'prepend':
|
|
250
|
+
ordered = [...base, ...def, ...provided];
|
|
251
|
+
break;
|
|
252
|
+
case 'append':
|
|
253
|
+
default:
|
|
254
|
+
ordered = [...provided, ...base, ...def];
|
|
255
|
+
break;
|
|
256
|
+
}
|
|
257
|
+
// deduplikacja z zachowaniem kolejności
|
|
258
|
+
const seen = new Set();
|
|
259
|
+
const out = [];
|
|
260
|
+
for (const t of ordered) {
|
|
261
|
+
if (typeof t === 'string' && !seen.has(t)) {
|
|
262
|
+
seen.add(t);
|
|
263
|
+
out.push(t);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return out;
|
|
267
|
+
}
|
|
268
|
+
applyDefaultProfileFields(metaOut) {
|
|
269
|
+
var _a;
|
|
270
|
+
const fields = (_a = this.profilerOptions) === null || _a === void 0 ? void 0 : _a.fieldsDefault;
|
|
271
|
+
if (fields && typeof fields === 'object') {
|
|
272
|
+
for (const key of Object.keys(fields)) {
|
|
273
|
+
if (metaOut[key] === undefined) {
|
|
274
|
+
metaOut[key] = fields[key];
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
shouldStartProfile() {
|
|
280
|
+
const p = this.profilerOptions || {};
|
|
281
|
+
// Jeśli użytkownik podał getLevel, nie możemy z góry określić poziomu -> profiluj
|
|
282
|
+
if (typeof p.getLevel === 'function')
|
|
283
|
+
return true;
|
|
284
|
+
const baseLevel = (p.level || 'debug');
|
|
285
|
+
if (this.isLevelEnabled(baseLevel))
|
|
286
|
+
return true;
|
|
287
|
+
// Jeżeli zdefiniowane progi, sprawdź czy wyższe poziomy są włączone
|
|
288
|
+
if (p.thresholdErrorMs !== undefined &&
|
|
289
|
+
this.isLevelEnabled('error')) {
|
|
290
|
+
return true;
|
|
291
|
+
}
|
|
292
|
+
if (p.thresholdWarnMs !== undefined &&
|
|
293
|
+
this.isLevelEnabled('warn')) {
|
|
294
|
+
return true;
|
|
295
|
+
}
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
makeProfileKey(label, meta) {
|
|
299
|
+
const profiler = this.profilerOptions || {};
|
|
300
|
+
try {
|
|
301
|
+
if (typeof (profiler === null || profiler === void 0 ? void 0 : profiler.keyFactory) === 'function') {
|
|
302
|
+
const k = profiler.keyFactory(label, meta);
|
|
303
|
+
if (k && typeof k === 'string')
|
|
304
|
+
return k;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
catch (e) {
|
|
308
|
+
console.warn('[scribelog] profiler.keyFactory threw:', e);
|
|
309
|
+
}
|
|
310
|
+
const rid = (profiler === null || profiler === void 0 ? void 0 : profiler.namespaceWithRequestId) && typeof requestContext_1.getRequestId === 'function'
|
|
311
|
+
? (0, requestContext_1.getRequestId)()
|
|
312
|
+
: undefined;
|
|
313
|
+
this.profileSeq = (this.profileSeq + 1) % Number.MAX_SAFE_INTEGER;
|
|
314
|
+
const prefix = rid ? `${rid}:` : '';
|
|
315
|
+
return `${prefix}${label}#${this.profileSeq}`;
|
|
316
|
+
}
|
|
317
|
+
pushLabelKey(label, key) {
|
|
318
|
+
const stack = this.labelStacks.get(label) || [];
|
|
319
|
+
stack.push(key);
|
|
320
|
+
this.labelStacks.set(label, stack);
|
|
321
|
+
}
|
|
322
|
+
popLabelKey(label) {
|
|
323
|
+
const stack = this.labelStacks.get(label);
|
|
324
|
+
if (!stack || stack.length === 0)
|
|
325
|
+
return undefined;
|
|
326
|
+
const key = stack.pop();
|
|
327
|
+
if (stack.length === 0)
|
|
328
|
+
this.labelStacks.delete(label);
|
|
329
|
+
else
|
|
330
|
+
this.labelStacks.set(label, stack);
|
|
331
|
+
return key;
|
|
332
|
+
}
|
|
333
|
+
removeLabelKey(label, key) {
|
|
334
|
+
const stack = this.labelStacks.get(label);
|
|
335
|
+
if (!stack || stack.length === 0)
|
|
336
|
+
return;
|
|
337
|
+
const idx = stack.lastIndexOf(key);
|
|
338
|
+
if (idx >= 0) {
|
|
339
|
+
stack.splice(idx, 1);
|
|
340
|
+
if (stack.length === 0)
|
|
341
|
+
this.labelStacks.delete(label);
|
|
342
|
+
else
|
|
343
|
+
this.labelStacks.set(label, stack);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
removeProfileByKey(key) {
|
|
347
|
+
// Usuń z profiles i powiązanych struktur
|
|
348
|
+
this.profiles.delete(key);
|
|
349
|
+
this.profileStartMeta.delete(key);
|
|
350
|
+
const label = this.keyToLabel.get(key);
|
|
351
|
+
if (label) {
|
|
352
|
+
this.removeLabelKey(label, key);
|
|
353
|
+
this.keyToLabel.delete(key);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
cleanupProfiles() {
|
|
357
|
+
var _a, _b;
|
|
358
|
+
const ttlMs = (_a = this.profilerOptions) === null || _a === void 0 ? void 0 : _a.ttlMs;
|
|
359
|
+
if (typeof ttlMs === 'number' && ttlMs > 0) {
|
|
360
|
+
const now = process.hrtime.bigint();
|
|
361
|
+
const ttlNs = BigInt(Math.floor(ttlMs * 1e6)); // ms -> ns
|
|
362
|
+
// profiles: Map<key, startNs>
|
|
363
|
+
for (const [key, startNs] of this.profiles) {
|
|
364
|
+
const ageNs = now - startNs;
|
|
365
|
+
if (ageNs > ttlNs) {
|
|
366
|
+
// Orphan cleanup
|
|
367
|
+
this.removeProfileByKey(key);
|
|
368
|
+
// Uwaga: używamy console.warn aby uniknąć rekurencji loggera
|
|
369
|
+
console.warn(`[scribelog] Removed orphaned profile "${key}" after exceeding TTL ${ttlMs}ms`);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
const maxActive = (_b = this.profilerOptions) === null || _b === void 0 ? void 0 : _b.maxActiveProfiles;
|
|
374
|
+
if (typeof maxActive === 'number' && maxActive > 0) {
|
|
375
|
+
while (this.profiles.size > maxActive) {
|
|
376
|
+
// Usuń najstarszy (Map zachowuje kolejność wstawiania)
|
|
377
|
+
const oldestKey = this.profiles.keys().next().value;
|
|
378
|
+
if (!oldestKey)
|
|
379
|
+
break;
|
|
380
|
+
this.removeProfileByKey(oldestKey);
|
|
381
|
+
console.warn(`[scribelog] Removed oldest active profile "${oldestKey}" due to maxActiveProfiles=${maxActive}`);
|
|
382
|
+
}
|
|
159
383
|
}
|
|
160
384
|
}
|
|
161
385
|
// Metody logowania poziomów (error, warn, info itd.) są generowane dynamicznie.
|
|
@@ -203,77 +427,231 @@ class Scribelog {
|
|
|
203
427
|
}
|
|
204
428
|
// ...existing code...
|
|
205
429
|
profile(label, meta) {
|
|
206
|
-
|
|
430
|
+
var _a;
|
|
431
|
+
// Fast‑path: jeśli profilowanie wyłączone (np. brak debug i progów), nie zakładaj Map
|
|
432
|
+
if (!this.shouldStartProfile()) {
|
|
433
|
+
return { key: '', label }; // no-op handle
|
|
434
|
+
}
|
|
435
|
+
const key = this.makeProfileKey(label, meta);
|
|
436
|
+
this.profiles.set(key, process.hrtime.bigint());
|
|
207
437
|
if (meta && typeof meta === 'object') {
|
|
208
|
-
this.profileStartMeta.set(
|
|
438
|
+
this.profileStartMeta.set(key, meta);
|
|
439
|
+
}
|
|
440
|
+
this.pushLabelKey(label, key);
|
|
441
|
+
this.keyToLabel.set(key, label);
|
|
442
|
+
// Egzekwuj maxActiveProfiles “na gorąco”
|
|
443
|
+
const maxActive = (_a = this.profilerOptions) === null || _a === void 0 ? void 0 : _a.maxActiveProfiles;
|
|
444
|
+
if (typeof maxActive === 'number' && maxActive > 0) {
|
|
445
|
+
while (this.profiles.size > maxActive) {
|
|
446
|
+
const oldestKey = this.profiles.keys().next().value;
|
|
447
|
+
if (!oldestKey || oldestKey === key)
|
|
448
|
+
break;
|
|
449
|
+
this.removeProfileByKey(oldestKey);
|
|
450
|
+
console.warn(`[scribelog] Removed oldest active profile "${oldestKey}" due to maxActiveProfiles=${maxActive}`);
|
|
451
|
+
}
|
|
209
452
|
}
|
|
210
|
-
|
|
453
|
+
return { key, label };
|
|
211
454
|
}
|
|
212
|
-
profileEnd(
|
|
213
|
-
const
|
|
455
|
+
profileEnd(labelOrHandle, meta) {
|
|
456
|
+
const isHandle = typeof labelOrHandle === 'object' && labelOrHandle !== null;
|
|
457
|
+
const label = isHandle
|
|
458
|
+
? labelOrHandle.label
|
|
459
|
+
: labelOrHandle;
|
|
460
|
+
const key = isHandle ? labelOrHandle.key : this.popLabelKey(label);
|
|
461
|
+
if (!key) {
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
if (isHandle) {
|
|
465
|
+
this.removeLabelKey(label, key);
|
|
466
|
+
}
|
|
467
|
+
this.keyToLabel.delete(key);
|
|
468
|
+
const start = this.profiles.get(key);
|
|
469
|
+
// NEW: jeśli start nie istnieje (profil usunięty przez TTL/limit), nie loguj
|
|
470
|
+
if (start === undefined) {
|
|
471
|
+
this.profileStartMeta.delete(key);
|
|
472
|
+
return;
|
|
473
|
+
}
|
|
214
474
|
const end = process.hrtime.bigint();
|
|
215
|
-
const durationMs =
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
475
|
+
const durationMs = Number(end - start) / 1e6;
|
|
476
|
+
this.profiles.delete(key);
|
|
477
|
+
const startMeta = this.profileStartMeta.get(key);
|
|
478
|
+
if (startMeta)
|
|
479
|
+
this.profileStartMeta.delete(key);
|
|
480
|
+
const metaOut = Object.assign(Object.assign(Object.assign({}, (startMeta || {})), (meta || {})), { profileLabel: label, durationMs: Math.round(durationMs) });
|
|
481
|
+
metaOut.tags = this.composeProfileTags(metaOut.tags);
|
|
482
|
+
this.applyDefaultProfileFields(metaOut);
|
|
483
|
+
// Ustal poziom wg opcji/heurystyki
|
|
484
|
+
const profiler = this.profilerOptions || {};
|
|
485
|
+
let level = metaOut.level || profiler.level || 'debug';
|
|
486
|
+
if (typeof profiler.getLevel === 'function') {
|
|
487
|
+
level = profiler.getLevel(durationMs, metaOut);
|
|
227
488
|
}
|
|
228
|
-
else
|
|
229
|
-
|
|
489
|
+
else if (profiler.thresholdErrorMs !== undefined &&
|
|
490
|
+
durationMs >= profiler.thresholdErrorMs) {
|
|
491
|
+
level = 'error';
|
|
492
|
+
}
|
|
493
|
+
else if (profiler.thresholdWarnMs !== undefined &&
|
|
494
|
+
durationMs >= profiler.thresholdWarnMs) {
|
|
495
|
+
level = 'warn';
|
|
230
496
|
}
|
|
231
|
-
|
|
497
|
+
if ('level' in metaOut)
|
|
498
|
+
delete metaOut.level;
|
|
499
|
+
this.emitProfileEvent({
|
|
500
|
+
label,
|
|
501
|
+
durationMs: Math.round(durationMs),
|
|
502
|
+
level,
|
|
503
|
+
metaOut,
|
|
504
|
+
key,
|
|
505
|
+
});
|
|
506
|
+
// Poprawka: użyj wyliczonego poziomu
|
|
507
|
+
this.log(level, label, metaOut);
|
|
232
508
|
}
|
|
233
509
|
// Alias: time/timeEnd
|
|
234
510
|
time(label, meta) {
|
|
235
511
|
this.profile(label, meta);
|
|
236
512
|
}
|
|
237
|
-
timeEnd(
|
|
238
|
-
this.profileEnd(
|
|
513
|
+
timeEnd(labelOrHandle, meta) {
|
|
514
|
+
this.profileEnd(labelOrHandle, meta);
|
|
239
515
|
}
|
|
240
516
|
// Wygodne pomiary bloków sync/async
|
|
241
517
|
timeSync(label, fn, meta) {
|
|
518
|
+
// Fast‑path: wyłączone profilowanie -> bez logowania
|
|
519
|
+
if (!this.shouldStartProfile()) {
|
|
520
|
+
return fn();
|
|
521
|
+
}
|
|
242
522
|
const start = process.hrtime.bigint();
|
|
243
523
|
try {
|
|
244
524
|
return fn();
|
|
245
525
|
}
|
|
246
526
|
finally {
|
|
247
527
|
const durationMs = Number(process.hrtime.bigint() - start) / 1e6;
|
|
248
|
-
const metaOut = Object.assign(Object.assign({}, (meta || {})), { profileLabel: label, durationMs: Math.round(durationMs), success: true, tags: Array.isArray(meta === null || meta === void 0 ? void 0 : meta.tags)
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
this.
|
|
528
|
+
const metaOut = Object.assign(Object.assign({}, (meta || {})), { profileLabel: label, durationMs: Math.round(durationMs), success: true, tags: Array.isArray(meta === null || meta === void 0 ? void 0 : meta.tags) ? [...meta.tags] : undefined });
|
|
529
|
+
metaOut.tags = this.composeProfileTags(metaOut.tags);
|
|
530
|
+
this.applyDefaultProfileFields(metaOut);
|
|
531
|
+
const profiler = this.profilerOptions || {};
|
|
532
|
+
let level = metaOut.level || profiler.level || 'debug';
|
|
533
|
+
if (typeof profiler.getLevel === 'function') {
|
|
534
|
+
level = profiler.getLevel(durationMs, metaOut);
|
|
535
|
+
}
|
|
536
|
+
else if (profiler.thresholdErrorMs !== undefined &&
|
|
537
|
+
durationMs >= profiler.thresholdErrorMs) {
|
|
538
|
+
level = 'error';
|
|
539
|
+
}
|
|
540
|
+
else if (profiler.thresholdWarnMs !== undefined &&
|
|
541
|
+
durationMs >= profiler.thresholdWarnMs) {
|
|
542
|
+
level = 'warn';
|
|
543
|
+
}
|
|
544
|
+
if ('level' in metaOut)
|
|
545
|
+
delete metaOut.level;
|
|
546
|
+
this.emitProfileEvent({
|
|
547
|
+
label,
|
|
548
|
+
durationMs: Math.round(durationMs),
|
|
549
|
+
success: true,
|
|
550
|
+
level,
|
|
551
|
+
metaOut,
|
|
552
|
+
});
|
|
553
|
+
this.log(level, label, metaOut);
|
|
252
554
|
}
|
|
253
555
|
}
|
|
254
556
|
timeAsync(label, fn, meta) {
|
|
255
557
|
return __awaiter(this, void 0, void 0, function* () {
|
|
558
|
+
// Fast‑path: wyłączone profilowanie -> bez logowania
|
|
559
|
+
if (!this.shouldStartProfile()) {
|
|
560
|
+
return fn();
|
|
561
|
+
}
|
|
256
562
|
const start = process.hrtime.bigint();
|
|
257
563
|
try {
|
|
258
564
|
const result = yield fn();
|
|
259
565
|
const durationMs = Number(process.hrtime.bigint() - start) / 1e6;
|
|
260
|
-
const metaOut = Object.assign(Object.assign({}, (meta || {})), { profileLabel: label, durationMs: Math.round(durationMs), success: true, tags: Array.isArray(meta === null || meta === void 0 ? void 0 : meta.tags)
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
this.
|
|
566
|
+
const metaOut = Object.assign(Object.assign({}, (meta || {})), { profileLabel: label, durationMs: Math.round(durationMs), success: true, tags: Array.isArray(meta === null || meta === void 0 ? void 0 : meta.tags) ? [...meta.tags] : undefined });
|
|
567
|
+
metaOut.tags = this.composeProfileTags(metaOut.tags);
|
|
568
|
+
this.applyDefaultProfileFields(metaOut);
|
|
569
|
+
const profiler = this.profilerOptions || {};
|
|
570
|
+
let level = metaOut.level || profiler.level || 'debug';
|
|
571
|
+
if (typeof profiler.getLevel === 'function') {
|
|
572
|
+
level = profiler.getLevel(durationMs, metaOut);
|
|
573
|
+
}
|
|
574
|
+
else if (profiler.thresholdErrorMs !== undefined &&
|
|
575
|
+
durationMs >= profiler.thresholdErrorMs) {
|
|
576
|
+
level = 'error';
|
|
577
|
+
}
|
|
578
|
+
else if (profiler.thresholdWarnMs !== undefined &&
|
|
579
|
+
durationMs >= profiler.thresholdWarnMs) {
|
|
580
|
+
level = 'warn';
|
|
581
|
+
}
|
|
582
|
+
if ('level' in metaOut)
|
|
583
|
+
delete metaOut.level;
|
|
584
|
+
this.emitProfileEvent({
|
|
585
|
+
label,
|
|
586
|
+
durationMs: Math.round(durationMs),
|
|
587
|
+
success: true,
|
|
588
|
+
level,
|
|
589
|
+
metaOut,
|
|
590
|
+
});
|
|
591
|
+
this.log(level, label, metaOut);
|
|
264
592
|
return result;
|
|
265
593
|
}
|
|
266
594
|
catch (error) {
|
|
267
595
|
const durationMs = Number(process.hrtime.bigint() - start) / 1e6;
|
|
268
|
-
const metaOut = Object.assign(Object.assign({}, (meta || {})), { profileLabel: label, durationMs: Math.round(durationMs), success: false, error, tags: Array.isArray(meta === null || meta === void 0 ? void 0 : meta.tags)
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
596
|
+
const metaOut = Object.assign(Object.assign({}, (meta || {})), { profileLabel: label, durationMs: Math.round(durationMs), success: false, error, tags: Array.isArray(meta === null || meta === void 0 ? void 0 : meta.tags) ? [...meta.tags] : undefined });
|
|
597
|
+
metaOut.tags = this.composeProfileTags(metaOut.tags);
|
|
598
|
+
this.applyDefaultProfileFields(metaOut);
|
|
599
|
+
const profiler = this.profilerOptions || {};
|
|
600
|
+
let level = metaOut.level || profiler.level || 'debug';
|
|
601
|
+
if (typeof profiler.getLevel === 'function') {
|
|
602
|
+
level = profiler.getLevel(durationMs, metaOut);
|
|
603
|
+
}
|
|
604
|
+
else if (profiler.thresholdErrorMs !== undefined &&
|
|
605
|
+
durationMs >= profiler.thresholdErrorMs) {
|
|
606
|
+
level = 'error';
|
|
607
|
+
}
|
|
608
|
+
else if (profiler.thresholdWarnMs !== undefined &&
|
|
609
|
+
durationMs >= profiler.thresholdWarnMs) {
|
|
610
|
+
level = 'warn';
|
|
611
|
+
}
|
|
612
|
+
if ('level' in metaOut)
|
|
613
|
+
delete metaOut.level;
|
|
614
|
+
// FIX: emit success=false w evencie
|
|
615
|
+
this.emitProfileEvent({
|
|
616
|
+
label,
|
|
617
|
+
durationMs: Math.round(durationMs),
|
|
618
|
+
success: false,
|
|
619
|
+
level,
|
|
620
|
+
metaOut,
|
|
621
|
+
});
|
|
622
|
+
this.log(level, label, metaOut);
|
|
273
623
|
throw error;
|
|
274
624
|
}
|
|
275
625
|
});
|
|
276
626
|
}
|
|
627
|
+
close() {
|
|
628
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
629
|
+
var _a;
|
|
630
|
+
// Usuń hook beforeExit, aby uniknąć rekurencji
|
|
631
|
+
if (this.beforeExitHandler) {
|
|
632
|
+
process.removeListener('beforeExit', this.beforeExitHandler);
|
|
633
|
+
this.beforeExitHandler = undefined;
|
|
634
|
+
}
|
|
635
|
+
// Zatrzymaj cleanup profilerów
|
|
636
|
+
this.dispose();
|
|
637
|
+
// Zamknij wszystkie transporty (obsłuż sync i async)
|
|
638
|
+
const closes = [];
|
|
639
|
+
for (const t of this.transports) {
|
|
640
|
+
try {
|
|
641
|
+
const maybe = (_a = t === null || t === void 0 ? void 0 : t.close) === null || _a === void 0 ? void 0 : _a.call(t);
|
|
642
|
+
if (maybe && typeof maybe.then === 'function') {
|
|
643
|
+
closes.push(maybe);
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
catch (e) {
|
|
647
|
+
console.error('[scribelog] Transport close() threw:', e);
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
if (closes.length) {
|
|
651
|
+
yield Promise.allSettled(closes);
|
|
652
|
+
}
|
|
653
|
+
});
|
|
654
|
+
}
|
|
277
655
|
// Metoda logEntry
|
|
278
656
|
logEntry(entry) {
|
|
279
657
|
var _a;
|
|
@@ -301,8 +679,13 @@ class Scribelog {
|
|
|
301
679
|
}
|
|
302
680
|
// Metoda child (przekazuje this.levels)
|
|
303
681
|
child(childMeta) {
|
|
682
|
+
var _a;
|
|
304
683
|
const newDefaultMeta = Object.assign(Object.assign({}, (this.defaultMeta || {})), childMeta);
|
|
305
|
-
|
|
684
|
+
// Jeśli shareTransports === true -> przekaż tę samą referencję tablicy.
|
|
685
|
+
// W przeciwnym razie zrób płytką kopię tablicy (te same instancje transportów).
|
|
686
|
+
const share = ((_a = this.options) === null || _a === void 0 ? void 0 : _a.shareTransports) === true;
|
|
687
|
+
const transportsForChild = share ? this.transports : [...this.transports];
|
|
688
|
+
const childLogger = new Scribelog(Object.assign(Object.assign({}, this.options), { levels: undefined, level: this.level, transports: transportsForChild, defaultMeta: newDefaultMeta }), this.levels // <<< przekazujemy AKTUALNY zestaw poziomów rodzica
|
|
306
689
|
);
|
|
307
690
|
return childLogger;
|
|
308
691
|
}
|
|
@@ -344,15 +727,32 @@ class Scribelog {
|
|
|
344
727
|
process.removeListener('unhandledRejection', this.rejectionHandler);
|
|
345
728
|
this.rejectionHandler = undefined;
|
|
346
729
|
}
|
|
730
|
+
if (this.cleanupTimer) {
|
|
731
|
+
clearInterval(this.cleanupTimer);
|
|
732
|
+
this.cleanupTimer = undefined;
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
dispose() {
|
|
736
|
+
if (this.cleanupTimer) {
|
|
737
|
+
clearInterval(this.cleanupTimer);
|
|
738
|
+
this.cleanupTimer = undefined;
|
|
739
|
+
}
|
|
347
740
|
}
|
|
348
741
|
// Metoda processAndTransport
|
|
349
742
|
processAndTransport(logEntry) {
|
|
350
743
|
for (const transport of this.transports) {
|
|
351
744
|
if (this.isTransportLevelEnabled(transport, logEntry.level)) {
|
|
352
|
-
const
|
|
353
|
-
const processedOutput = formatToUse(Object.assign({}, logEntry));
|
|
745
|
+
const entryObject = Object.assign({}, logEntry);
|
|
354
746
|
try {
|
|
355
|
-
|
|
747
|
+
// DLA ConsoleTransport przekaż obiekt, aby mieć pewny dostęp do entry.level
|
|
748
|
+
if (transport instanceof console_1.ConsoleTransport) {
|
|
749
|
+
transport.log(entryObject);
|
|
750
|
+
}
|
|
751
|
+
else {
|
|
752
|
+
const formatToUse = transport.format || this.format;
|
|
753
|
+
const processedOutput = formatToUse(entryObject);
|
|
754
|
+
transport.log(processedOutput);
|
|
755
|
+
}
|
|
356
756
|
}
|
|
357
757
|
catch (err) {
|
|
358
758
|
console.error('[scribelog] Error in transport:', err);
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.ConsoleTransport = void 0;
|
|
40
40
|
const format = __importStar(require("../format"));
|
|
41
41
|
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
// ...existing code...
|
|
42
43
|
class ConsoleTransport {
|
|
43
44
|
constructor(options = {}) {
|
|
44
45
|
this.level = options.level;
|
|
@@ -48,32 +49,62 @@ class ConsoleTransport {
|
|
|
48
49
|
log(processedEntry) {
|
|
49
50
|
let output;
|
|
50
51
|
let entryLevel = undefined;
|
|
51
|
-
// Ustal, czy używać kolorów dla fallbacku format.simple()
|
|
52
52
|
const useColors = chalk_1.default.supportsColor
|
|
53
53
|
? chalk_1.default.supportsColor.hasBasic
|
|
54
54
|
: false;
|
|
55
|
-
if (typeof processedEntry === '
|
|
56
|
-
|
|
57
|
-
// Prosta próba odgadnięcia poziomu ze stringa
|
|
58
|
-
const upperCaseEntry = output.toUpperCase();
|
|
59
|
-
if (upperCaseEntry.includes('[ERROR]'))
|
|
60
|
-
entryLevel = 'error';
|
|
61
|
-
else if (upperCaseEntry.includes('[WARN]'))
|
|
62
|
-
entryLevel = 'warn';
|
|
63
|
-
// ...
|
|
64
|
-
}
|
|
65
|
-
else if (typeof processedEntry === 'object' && processedEntry !== null) {
|
|
66
|
-
// Odczytaj poziom z obiektu (powinien być dodany przez format.level())
|
|
55
|
+
if (processedEntry && typeof processedEntry === 'object') {
|
|
56
|
+
// Preferuj level z obiektu (bez heurystyk)
|
|
67
57
|
if (processedEntry.level && typeof processedEntry.level === 'string') {
|
|
68
58
|
entryLevel = processedEntry.level;
|
|
69
59
|
}
|
|
70
|
-
|
|
71
|
-
|
|
60
|
+
const formatter = this.format;
|
|
61
|
+
if (formatter) {
|
|
62
|
+
try {
|
|
63
|
+
const res = formatter(Object.assign({}, processedEntry));
|
|
64
|
+
if (typeof res === 'string') {
|
|
65
|
+
output = res;
|
|
66
|
+
}
|
|
67
|
+
else if (res && typeof res === 'object') {
|
|
68
|
+
output = format.simple({ colors: useColors })(res);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
output = format.simple({ colors: useColors })(processedEntry);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
console.error('[scribelog] ConsoleTransport format error:', e);
|
|
76
|
+
output = format.simple({ colors: useColors })(processedEntry);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
output = format.simple({ colors: useColors })(processedEntry);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else if (typeof processedEntry === 'string') {
|
|
84
|
+
// Fallback dla stringów (np. custom transport/formaty zwróciły string)
|
|
85
|
+
output = processedEntry;
|
|
86
|
+
// Minimalna heurystyka tylko awaryjnie
|
|
87
|
+
const upper = output.toUpperCase();
|
|
88
|
+
if (upper.includes('[ERROR]'))
|
|
89
|
+
entryLevel = 'error';
|
|
90
|
+
else if (upper.includes('[WARN]'))
|
|
91
|
+
entryLevel = 'warn';
|
|
92
|
+
else if (upper.includes('[INFO]'))
|
|
93
|
+
entryLevel = 'info';
|
|
94
|
+
else if (upper.includes('[DEBUG]'))
|
|
95
|
+
entryLevel = 'debug';
|
|
96
|
+
else if (upper.includes('[HTTP]'))
|
|
97
|
+
entryLevel = 'http';
|
|
98
|
+
else if (upper.includes('[VERBOSE]'))
|
|
99
|
+
entryLevel = 'verbose';
|
|
100
|
+
else if (upper.includes('[SILLY]'))
|
|
101
|
+
entryLevel = 'silly';
|
|
72
102
|
}
|
|
73
103
|
else {
|
|
74
|
-
return;
|
|
104
|
+
return;
|
|
75
105
|
}
|
|
76
|
-
|
|
106
|
+
if (output === undefined)
|
|
107
|
+
return;
|
|
77
108
|
if (entryLevel && this.useStdErrLevels.has(entryLevel)) {
|
|
78
109
|
console.error(output);
|
|
79
110
|
}
|
|
@@ -83,4 +114,5 @@ class ConsoleTransport {
|
|
|
83
114
|
}
|
|
84
115
|
}
|
|
85
116
|
exports.ConsoleTransport = ConsoleTransport;
|
|
117
|
+
// ...existing code...
|
|
86
118
|
//# sourceMappingURL=console.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/transports/console.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kDAAoC;AACpC,kDAA0B;AAQ1B,MAAa,gBAAgB;IAK3B,YAAY,UAAmC,EAAE;QAC/C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,yCAAyC;QACvE,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,GAAG,CAAC,cAA4C;QAC9C,IAAI,
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/transports/console.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -29,11 +29,15 @@ export interface FileTransportOptions {
|
|
|
29
29
|
fsWriteStreamOptions?: object;
|
|
30
30
|
utc?: boolean;
|
|
31
31
|
}
|
|
32
|
+
export interface ProfileHandle {
|
|
33
|
+
key: string;
|
|
34
|
+
label: string;
|
|
35
|
+
}
|
|
32
36
|
export interface Transport {
|
|
33
37
|
log(processedEntry: Record<string, any> | string): void;
|
|
34
38
|
level?: LogLevel;
|
|
35
39
|
format?: LogFormat;
|
|
36
|
-
close?(): void
|
|
40
|
+
close?(): void | Promise<void>;
|
|
37
41
|
}
|
|
38
42
|
export interface LoggerOptions {
|
|
39
43
|
/** Minimalny poziom logowania. Może być stringiem (nazwą poziomu). */
|
|
@@ -47,6 +51,36 @@ export interface LoggerOptions {
|
|
|
47
51
|
handleExceptions?: boolean;
|
|
48
52
|
handleRejections?: boolean;
|
|
49
53
|
exitOnError?: boolean;
|
|
54
|
+
exceptionHandlerMode?: 'prepend' | 'append';
|
|
55
|
+
rejectionHandlerMode?: 'prepend' | 'append';
|
|
56
|
+
autoCloseOnBeforeExit?: boolean;
|
|
57
|
+
shareTransports?: boolean;
|
|
58
|
+
profiler?: {
|
|
59
|
+
level?: LogLevel;
|
|
60
|
+
thresholdWarnMs?: number;
|
|
61
|
+
thresholdErrorMs?: number;
|
|
62
|
+
getLevel?: (durationMs: number, meta?: Record<string, any>) => LogLevel;
|
|
63
|
+
namespaceWithRequestId?: boolean;
|
|
64
|
+
keyFactory?: (label: string, meta?: Record<string, any>) => string;
|
|
65
|
+
ttlMs?: number;
|
|
66
|
+
cleanupIntervalMs?: number;
|
|
67
|
+
maxActiveProfiles?: number;
|
|
68
|
+
tagsDefault?: string[];
|
|
69
|
+
tagsMode?: 'append' | 'prepend' | 'replace';
|
|
70
|
+
fieldsDefault?: Record<string, any>;
|
|
71
|
+
onMeasure?: (event: ProfileEvent) => void;
|
|
72
|
+
onMeasureFilter?: (event: ProfileEvent) => ProfileEvent | null | undefined;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export interface ProfileEvent {
|
|
76
|
+
label: string;
|
|
77
|
+
durationMs: number;
|
|
78
|
+
success?: boolean;
|
|
79
|
+
level: LogLevel;
|
|
80
|
+
tags?: string[];
|
|
81
|
+
requestId?: string;
|
|
82
|
+
meta?: Record<string, any>;
|
|
83
|
+
key?: string;
|
|
50
84
|
}
|
|
51
85
|
interface BaseLoggerInterface {
|
|
52
86
|
logEntry(entry: Omit<LogInfo, 'timestamp' | 'level' | 'message'> & Partial<Pick<LogInfo, 'level' | 'message' | 'splat'>> & {
|
|
@@ -58,11 +92,13 @@ interface BaseLoggerInterface {
|
|
|
58
92
|
isLevelEnabled(level: LogLevel): boolean;
|
|
59
93
|
addTransport(transport: Transport): void;
|
|
60
94
|
removeExceptionHandlers?(): void;
|
|
95
|
+
dispose(): void;
|
|
96
|
+
close(): Promise<void>;
|
|
61
97
|
child(defaultMeta: Record<string, any>): LoggerInterface;
|
|
62
|
-
profile(label: string, meta?: Record<string, any>):
|
|
63
|
-
profileEnd(
|
|
98
|
+
profile(label: string, meta?: Record<string, any>): ProfileHandle;
|
|
99
|
+
profileEnd(labelOrHandle: string | ProfileHandle, meta?: Record<string, any>): void;
|
|
64
100
|
time(label: string, meta?: Record<string, any>): void;
|
|
65
|
-
timeEnd(
|
|
101
|
+
timeEnd(labelOrHandle: string | ProfileHandle, meta?: Record<string, any>): void;
|
|
66
102
|
timeSync<T>(label: string, fn: () => T, meta?: Record<string, any>): T;
|
|
67
103
|
timeAsync<T>(label: string, fn: () => Promise<T>, meta?: Record<string, any>): Promise<T>;
|
|
68
104
|
}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AA4KA,wBAAwB"}
|