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 CHANGED
@@ -1,7 +1,7 @@
1
1
  # Scribelog 🪵📝
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/scribelog.svg)](https://www.npmjs.com/package/scribelog)
4
- [![npm downloads](https://img.shields.io/npm/dm/scribelog.svg)](https://www.npmjs.com/package/scribelog)
4
+ [![npm downloads](https://img.shields.io/npm/dt/scribelog.svg)](https://www.npmjs.com/package/scribelog)
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
  [![Build Status](https://github.com/tolongames/scribelog/actions/workflows/node.js.yml/badge.svg)](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
- Measure durations with high‑resolution timers and structured metadata. Start a timer and finish it later, or wrap sync/async blocks. Metadata passed at start is merged with metadata at end.
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
- // Manual start/stop
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
- // Aliases
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
- 'load-user',
113
- async () => {
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
- Every profile entry includes:
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
- - message: the label you provided
123
- - metadata: profileLabel, durationMs, tags: ['profile'], and any custom fields
124
- - requestId is attached automatically when request context is active
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
- let currentInfo = Object.assign({}, info);
346
- for (const format of formats) {
347
- const result = format(currentInfo);
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
- currentInfo =
352
- typeof result === 'object' && result !== null ? result : currentInfo;
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 maskObject(obj) {
370
- if (obj && typeof obj === 'object') {
371
- for (const key of Object.keys(obj)) {
372
- if (fields.includes(key)) {
373
- obj[key] = typeof mask === 'function' ? mask(obj[key], key) : mask;
374
- }
375
- else if (typeof obj[key] === 'object' && obj[key] !== null) {
376
- obj[key] = maskObject(obj[key]);
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 obj;
407
+ return out;
381
408
  }
382
409
  return (info) => {
383
- // Maskuj tylko w metadanych, nie w level/message/timestamp
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
- if (typeof info[key] === 'object' && info[key] !== null) {
400
- info[key] = maskObject(info[key]);
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
- info[key] = typeof mask === 'function' ? mask(info[key], key) : mask;
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 info;
439
+ return out;
408
440
  };
409
441
  }
410
442
  // ...existing code...
@@ -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, LogLevel, LogLevels } from './levels';
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 { LogLevel, LogLevels };
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,qCAA+D;AA8BtD,+FA9BA,uBAAc,OA8BA;AA7BvB,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;AAEhD,mCAAmC;AACtB,QAAA,YAAY,GAAG,qBAAa,CAAC;AAC7B,QAAA,SAAS,GAAG,kBAAU,CAAC;AACpC,mDAAiC;AAWjC,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"}
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
@@ -11,5 +11,5 @@ export declare const standardLevels: {
11
11
  debug: number;
12
12
  silly: number;
13
13
  };
14
- export type LogLevel = keyof typeof standardLevels;
14
+ export type StandardLogLevel = keyof typeof standardLevels;
15
15
  export type LogLevels = Record<string, number>;
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>): void;
23
- profileEnd(label: string, meta?: Record<string, any>): void;
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(label: string, meta?: Record<string, any>): void;
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 !== false;
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
- process.removeAllListeners('uncaughtException');
141
- process.on('uncaughtException', this.exceptionHandler);
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
- process.removeAllListeners('unhandledRejection');
158
- process.on('unhandledRejection', this.rejectionHandler);
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
- this.profiles.set(label, process.hrtime.bigint());
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(label, meta);
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
- // opcjonalny log startu...
453
+ return { key, label };
211
454
  }
212
- profileEnd(label, meta) {
213
- const start = this.profiles.get(label);
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 = start !== undefined ? Number(end - start) / 1e6 : undefined;
216
- if (start !== undefined)
217
- this.profiles.delete(label);
218
- // SCAL meta: start + end (koniec nadpisuje start)
219
- const startMeta = this.profileStartMeta.get(label);
220
- this.profileStartMeta.delete(label);
221
- const metaOut = Object.assign(Object.assign(Object.assign(Object.assign({}, (startMeta || {})), (meta || {})), { profileLabel: label }), (durationMs !== undefined
222
- ? { durationMs: Math.round(durationMs) }
223
- : {}));
224
- // tag 'profile'
225
- if (Array.isArray(metaOut.tags)) {
226
- metaOut.tags = [...metaOut.tags, 'profile'];
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
- metaOut.tags = ['profile'];
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
- this.log('debug', label, metaOut);
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(label, meta) {
238
- this.profileEnd(label, meta);
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
- ? [...meta.tags, 'profile']
250
- : ['profile'] });
251
- this.log('debug', label, metaOut);
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
- ? [...meta.tags, 'profile']
262
- : ['profile'] });
263
- this.log('debug', label, metaOut);
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
- ? [...meta.tags, 'profile']
270
- : ['profile'] });
271
- // Błąd też logujemy na 'debug' z polem error (format.error() go obsłuży)
272
- this.log('debug', label, metaOut);
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
- const childLogger = new Scribelog(Object.assign(Object.assign({}, this.options), { levels: undefined, level: this.level, transports: this.transports, defaultMeta: newDefaultMeta }), this.levels // <<< Przekazujemy AKTUALNY zestaw poziomów rodzica
684
+ // Jeśli shareTransports === true -> przekaż 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 formatToUse = transport.format || this.format;
353
- const processedOutput = formatToUse(Object.assign({}, logEntry));
745
+ const entryObject = Object.assign({}, logEntry);
354
746
  try {
355
- transport.log(processedOutput);
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);
@@ -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 === 'string') {
56
- output = processedEntry;
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
- // Zastosuj format.simple jako fallback do konwersji obiektu na string
71
- output = format.simple({ colors: useColors })(processedEntry);
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; // Ignoruj inne typy
104
+ return;
75
105
  }
76
- // Wybierz strumień wyjścia
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,MAAc,CAAC;QACnB,IAAI,UAAU,GAAyB,SAAS,CAAC;QAEjD,0DAA0D;QAC1D,MAAM,SAAS,GAAG,eAAK,CAAC,aAAa;YACnC,CAAC,CAAC,eAAK,CAAC,aAAa,CAAC,QAAQ;YAC9B,CAAC,CAAC,KAAK,CAAC;QAEV,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,GAAG,cAAc,CAAC;YACxB,8CAA8C;YAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,UAAU,GAAG,OAAO,CAAC;iBACxD,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,UAAU,GAAG,MAAM,CAAC;YAChE,MAAM;QACR,CAAC;aAAM,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YACzE,uEAAuE;YACvE,IAAI,cAAc,CAAC,KAAK,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrE,UAAU,GAAG,cAAc,CAAC,KAAiB,CAAC;YAChD,CAAC;YACD,sEAAsE;YACtE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,cAAc,CAAW,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,oBAAoB;QAC9B,CAAC;QAED,2BAA2B;QAC3B,IAAI,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;CACF;AA7CD,4CA6CC"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/transports/console.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,kDAAoC;AACpC,kDAA0B;AAQ1B,sBAAsB;AACtB,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,MAA0B,CAAC;QAC/B,IAAI,UAAU,GAAyB,SAAS,CAAC;QAEjD,MAAM,SAAS,GAAG,eAAK,CAAC,aAAa;YACnC,CAAC,CAAC,eAAK,CAAC,aAAa,CAAC,QAAQ;YAC9B,CAAC,CAAC,KAAK,CAAC;QAEV,IAAI,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACzD,2CAA2C;YAC3C,IAAI,cAAc,CAAC,KAAK,IAAI,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrE,UAAU,GAAG,cAAc,CAAC,KAAiB,CAAC;YAChD,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9B,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,SAAS,mBAAM,cAAc,EAAG,CAAC;oBAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;wBAC5B,MAAM,GAAG,GAAG,CAAC;oBACf,CAAC;yBAAM,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;wBAC1C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAW,CAAC;oBAC/D,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAC3C,cAAc,CACL,CAAC;oBACd,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,CAAC,CAAC,CAAC;oBAC/D,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAC3C,cAAc,CACL,CAAC;gBACd,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,cAAc,CAAW,CAAC;YAC1E,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YAC9C,uEAAuE;YACvE,MAAM,GAAG,cAAc,CAAC;YAExB,uCAAuC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,UAAU,GAAG,OAAO,CAAC;iBAC/C,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,UAAU,GAAG,MAAM,CAAC;iBAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,UAAU,GAAG,MAAM,CAAC;iBAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,UAAU,GAAG,OAAO,CAAC;iBACpD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,UAAU,GAAG,MAAM,CAAC;iBAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,UAAU,GAAG,SAAS,CAAC;iBACxD,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,UAAU,GAAG,OAAO,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,OAAO;QACT,CAAC;QAED,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QAEjC,IAAI,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;CACF;AAxED,4CAwEC;AACD,sBAAsB"}
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>): void;
63
- profileEnd(label: string, meta?: Record<string, any>): void;
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(label: string, meta?: Record<string, any>): void;
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":";;AAuHA,wBAAwB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AA4KA,wBAAwB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scribelog",
3
- "version": "2.1.0-beta.0",
3
+ "version": "2.1.1",
4
4
  "description": "An advanced, configurable logger for Node.js applications.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",