scribelog 2.0.0 → 2.1.0
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 +81 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +33 -0
- package/dist/logger.js +416 -0
- package/dist/logger.js.map +1 -1
- package/dist/types.d.ts +36 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,6 +20,13 @@
|
|
|
20
20
|
- **Child Loggers:** Easily create contextual loggers (`logger.child({...})`) that inherit settings but add specific metadata (like `requestId`).
|
|
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
|
+
- **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: profile(label) returns a handle; profileEnd accepts a handle or uses LIFO per label. Optional namespacing with requestId or a custom keyFactory.
|
|
26
|
+
- Orphan cleanup: TTL-based cleanup, periodic sweeping, and maxActiveProfiles limit; stop the background cleaner with logger.dispose().
|
|
27
|
+
- Fast path: when profiling is effectively disabled (no debug, no thresholds/getLevel/profiler.level), time\*/profile calls are no-ops.
|
|
28
|
+
- Configurable tags and fields: compose tags via tagsDefault/tagsMode (append/prepend/replace) and add fieldsDefault without overriding explicit meta.
|
|
29
|
+
- Metrics hook: profiler.onMeasure(event) is called after each measurement (no extra log), ready for Prometheus/Grafana.
|
|
23
30
|
- **Automatic Error Handling:** Optionally catch and log `uncaughtException` and `unhandledRejection` events, including stack traces.
|
|
24
31
|
- **Remote Transports (HTTP, WebSocket, TCP, UDP):**
|
|
25
32
|
Send logs over the network to ELK/Logstash, Graylog, Datadog, or custom collectors. Supports batching (AsyncBatch) and gzip (HTTP).
|
|
@@ -88,6 +95,77 @@ Error: Test error
|
|
|
88
95
|
2025-05-01T12:00:00.130Z [INFO] [auth, user]: User login { userId: 123 }
|
|
89
96
|
```
|
|
90
97
|
|
|
98
|
+
## ⏱️ Profiling & Timing
|
|
99
|
+
|
|
100
|
+
High‑resolution timers for measuring any code block, with smart defaults and advanced controls.
|
|
101
|
+
|
|
102
|
+
Configuration (examples):
|
|
103
|
+
|
|
104
|
+
```ts
|
|
105
|
+
import { createLogger } from 'scribelog';
|
|
106
|
+
|
|
107
|
+
const logger = createLogger({
|
|
108
|
+
profiler: {
|
|
109
|
+
// Level heuristics
|
|
110
|
+
level: 'debug', // base level for profiling logs (optional)
|
|
111
|
+
thresholdWarnMs: 200, // >=200ms -> warn
|
|
112
|
+
thresholdErrorMs: 1000, // >=1000ms -> error
|
|
113
|
+
// or custom level function:
|
|
114
|
+
// getLevel: (durationMs, meta) => (durationMs > 500 ? 'warn' : 'info'),
|
|
115
|
+
|
|
116
|
+
// Concurrency & keys
|
|
117
|
+
namespaceWithRequestId: true, // key prefix from requestId (if context available)
|
|
118
|
+
// keyFactory: (label, meta) => `${meta?.tenant ?? 'anon'}:${label}:${Date.now()}`,
|
|
119
|
+
|
|
120
|
+
// Orphan cleanup
|
|
121
|
+
ttlMs: 5 * 60_000, // remove timers not ended within 5 min
|
|
122
|
+
cleanupIntervalMs: 60_000, // sweep every 60s
|
|
123
|
+
maxActiveProfiles: 1000, // drop the oldest when the limit is exceeded
|
|
124
|
+
|
|
125
|
+
// Tags & fields
|
|
126
|
+
tagsDefault: ['perf'], // added with 'append' mode by default
|
|
127
|
+
tagsMode: 'append', // 'append' | 'prepend' | 'replace'
|
|
128
|
+
fieldsDefault: { service: 'api' },
|
|
129
|
+
|
|
130
|
+
// Metrics hook (no extra log)
|
|
131
|
+
onMeasure: (e) => {
|
|
132
|
+
// e = { label, durationMs, success?: boolean, level, tags?, requestId?, meta, key? }
|
|
133
|
+
// Send to Prometheus, StatsD, etc.
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Usage patterns:
|
|
140
|
+
|
|
141
|
+
```ts
|
|
142
|
+
// 1) Manual start/stop with handle (best for concurrency)
|
|
143
|
+
const h = logger.profile('db', { query: 'SELECT 1' });
|
|
144
|
+
// ... work ...
|
|
145
|
+
logger.profileEnd(h, { rows: 10 }); // merges start+end meta and logs
|
|
146
|
+
|
|
147
|
+
// 2) Aliases (still handle-capable via time/timeEnd)
|
|
148
|
+
logger.time('calc');
|
|
149
|
+
// ... work ...
|
|
150
|
+
logger.timeEnd('calc'); // ends the latest 'calc' via LIFO per label
|
|
151
|
+
|
|
152
|
+
// 3) Sync block helper
|
|
153
|
+
const value = logger.timeSync('compute', () => 2 + 2, { component: 'math' });
|
|
154
|
+
|
|
155
|
+
// 4) Async block helper (logs success or error, rethrows on error)
|
|
156
|
+
await logger.timeAsync('load-user', async () => getUser(42), {
|
|
157
|
+
component: 'users',
|
|
158
|
+
});
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Notes:
|
|
162
|
+
|
|
163
|
+
- 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.
|
|
164
|
+
- Fast path: when profiling is effectively disabled (no debug and no thresholds/getLevel/profiler.level), time\*/profile calls skip overhead and do not log.
|
|
165
|
+
- 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().
|
|
166
|
+
- Tags & fields: tagsDefault/tagsMode and fieldsDefault are applied consistently; tags are deduplicated.
|
|
167
|
+
- Metrics hook: profiler.onMeasure(event) is called after each measurement, with merged meta and composed tags, without producing additional logs.
|
|
168
|
+
|
|
91
169
|
---
|
|
92
170
|
|
|
93
171
|
## 📘 Full Documentation
|
|
@@ -365,9 +443,9 @@ Notes:
|
|
|
365
443
|
|
|
366
444
|
## 📚 Future Work
|
|
367
445
|
|
|
368
|
-
-
|
|
369
|
-
-
|
|
370
|
-
-
|
|
446
|
+
- Syslog/journald transports for system logging
|
|
447
|
+
- OpenTelemetry integration (trace/span IDs propagation)
|
|
448
|
+
- More adapters and richer redaction/masking presets
|
|
371
449
|
|
|
372
450
|
---
|
|
373
451
|
|
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ import { HttpTransport } from './transports/http';
|
|
|
18
18
|
import { WebSocketTransport } from './transports/websocket';
|
|
19
19
|
import { TcpTransport } from './transports/tcp';
|
|
20
20
|
import { UdpTransport } from './transports/udp';
|
|
21
|
+
export type { ProfileEvent } from './types';
|
|
21
22
|
export declare const createLogger: typeof _createLogger;
|
|
22
23
|
export declare const Scribelog: typeof _Scribelog;
|
|
23
24
|
export * from './requestContext';
|
|
@@ -26,6 +27,7 @@ export type LoggerOptions = _LoggerOptions;
|
|
|
26
27
|
export type { AsyncBatchTransportOptions } from './transports/asyncBatch';
|
|
27
28
|
export { standardLevels };
|
|
28
29
|
export type { LogLevel, LogLevels };
|
|
30
|
+
export type { ProfileHandle } from './types';
|
|
29
31
|
export declare const transports: {
|
|
30
32
|
Console: typeof _ConsoleTransport;
|
|
31
33
|
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,eAAe;AACf,qCAGkB;AAUlB,wDAA8D;AAC9D,qCAA+D;AAgCtD,+FAhCA,uBAAc,OAgCA;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/logger.d.ts
CHANGED
|
@@ -8,15 +8,47 @@ export declare class Scribelog implements LoggerInterface {
|
|
|
8
8
|
levels: LogLevels;
|
|
9
9
|
level: LogLevel;
|
|
10
10
|
private transports;
|
|
11
|
+
private profilerOptions;
|
|
12
|
+
private profiles;
|
|
11
13
|
private format;
|
|
12
14
|
private defaultMeta?;
|
|
13
15
|
private options;
|
|
16
|
+
private profileStartMeta;
|
|
17
|
+
private profileSeq;
|
|
18
|
+
private labelStacks;
|
|
19
|
+
private keyToLabel;
|
|
20
|
+
private cleanupTimer?;
|
|
14
21
|
private exitOnError;
|
|
15
22
|
private exceptionHandler?;
|
|
16
23
|
private rejectionHandler?;
|
|
17
24
|
[level: string]: ((message: any, ...args: any[]) => void) | any;
|
|
18
25
|
constructor(options?: LoggerOptions, internalParentLevels?: LogLevels);
|
|
26
|
+
private emitProfileEvent;
|
|
27
|
+
private composeProfileTags;
|
|
28
|
+
private applyDefaultProfileFields;
|
|
29
|
+
private shouldStartProfile;
|
|
30
|
+
private makeProfileKey;
|
|
31
|
+
private pushLabelKey;
|
|
32
|
+
private popLabelKey;
|
|
33
|
+
private removeLabelKey;
|
|
34
|
+
private removeProfileByKey;
|
|
35
|
+
private cleanupProfiles;
|
|
19
36
|
log(level: LogLevel, message: any, ...args: any[]): void;
|
|
37
|
+
profile(label: string, meta?: Record<string, any>): {
|
|
38
|
+
key: string;
|
|
39
|
+
label: string;
|
|
40
|
+
};
|
|
41
|
+
profileEnd(labelOrHandle: string | {
|
|
42
|
+
key: string;
|
|
43
|
+
label: string;
|
|
44
|
+
}, meta?: Record<string, any>): void;
|
|
45
|
+
time(label: string, meta?: Record<string, any>): void;
|
|
46
|
+
timeEnd(labelOrHandle: string | {
|
|
47
|
+
key: string;
|
|
48
|
+
label: string;
|
|
49
|
+
}, meta?: Record<string, any>): void;
|
|
50
|
+
timeSync<T>(label: string, fn: () => T, meta?: Record<string, any>): T;
|
|
51
|
+
timeAsync<T>(label: string, fn: () => Promise<T>, meta?: Record<string, any>): Promise<T>;
|
|
20
52
|
logEntry(entry: LogEntryInput): void;
|
|
21
53
|
isLevelEnabled(level: LogLevel): boolean;
|
|
22
54
|
addTransport(transport: Transport): void;
|
|
@@ -24,6 +56,7 @@ export declare class Scribelog implements LoggerInterface {
|
|
|
24
56
|
private logError;
|
|
25
57
|
private formatError;
|
|
26
58
|
removeExceptionHandlers(): void;
|
|
59
|
+
dispose(): void;
|
|
27
60
|
private processAndTransport;
|
|
28
61
|
private isTransportLevelEnabled;
|
|
29
62
|
}
|
package/dist/logger.js
CHANGED
|
@@ -32,6 +32,15 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
35
44
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
36
45
|
var t = {};
|
|
37
46
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -56,6 +65,13 @@ const requestContext_1 = require("./requestContext");
|
|
|
56
65
|
class Scribelog {
|
|
57
66
|
// Zmieniony konstruktor akceptujący opcjonalne poziomy rodzica
|
|
58
67
|
constructor(options = {}, internalParentLevels) {
|
|
68
|
+
var _a, _b;
|
|
69
|
+
this.profiles = new Map();
|
|
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)
|
|
59
75
|
this.options = Object.assign({}, options); // Zapisz kopię ORYGINALNYCH opcji
|
|
60
76
|
// --- Użyj poziomów rodzica LUB połącz standardowe z opcjami ---
|
|
61
77
|
if (internalParentLevels) {
|
|
@@ -102,6 +118,24 @@ class Scribelog {
|
|
|
102
118
|
this.format = options.format || format.defaultSimpleFormat;
|
|
103
119
|
this.defaultMeta = options.defaultMeta;
|
|
104
120
|
this.exitOnError = options.exitOnError !== false;
|
|
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
|
+
}
|
|
105
139
|
// --- Dynamiczne tworzenie metod dla WSZYSTKICH poziomów ---
|
|
106
140
|
Object.keys(this.levels).forEach((levelName) => {
|
|
107
141
|
// Usunięto warunek `if (levelName in this)`, aby umożliwić nadpisywanie
|
|
@@ -147,6 +181,180 @@ class Scribelog {
|
|
|
147
181
|
process.on('unhandledRejection', this.rejectionHandler);
|
|
148
182
|
}
|
|
149
183
|
}
|
|
184
|
+
emitProfileEvent(params) {
|
|
185
|
+
var _a;
|
|
186
|
+
const cb = (_a = this.profilerOptions) === null || _a === void 0 ? void 0 : _a.onMeasure;
|
|
187
|
+
if (typeof cb !== 'function')
|
|
188
|
+
return;
|
|
189
|
+
try {
|
|
190
|
+
const { label, durationMs, success, level, metaOut, key } = params;
|
|
191
|
+
const event = {
|
|
192
|
+
label,
|
|
193
|
+
durationMs,
|
|
194
|
+
success,
|
|
195
|
+
level,
|
|
196
|
+
tags: Array.isArray(metaOut.tags) ? metaOut.tags : undefined,
|
|
197
|
+
requestId: (metaOut &&
|
|
198
|
+
typeof metaOut.requestId === 'string' &&
|
|
199
|
+
metaOut.requestId) ||
|
|
200
|
+
(0, requestContext_1.getRequestId)(),
|
|
201
|
+
meta: Object.assign({}, metaOut),
|
|
202
|
+
key,
|
|
203
|
+
};
|
|
204
|
+
cb(event);
|
|
205
|
+
}
|
|
206
|
+
catch (e) {
|
|
207
|
+
// Nigdy nie przerywaj logowania przez błąd hooka
|
|
208
|
+
console.warn('[scribelog] profiler.onMeasure hook threw:', e);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
composeProfileTags(existing) {
|
|
212
|
+
const profiler = this.profilerOptions || {};
|
|
213
|
+
const base = ['profile'];
|
|
214
|
+
const def = Array.isArray(profiler.tagsDefault) ? profiler.tagsDefault : [];
|
|
215
|
+
const provided = Array.isArray(existing) ? existing : [];
|
|
216
|
+
const mode = profiler.tagsMode || 'append';
|
|
217
|
+
let ordered;
|
|
218
|
+
switch (mode) {
|
|
219
|
+
case 'replace':
|
|
220
|
+
ordered = provided.length ? provided : def.length ? def : base;
|
|
221
|
+
break;
|
|
222
|
+
case 'prepend':
|
|
223
|
+
ordered = [...base, ...def, ...provided];
|
|
224
|
+
break;
|
|
225
|
+
case 'append':
|
|
226
|
+
default:
|
|
227
|
+
ordered = [...provided, ...base, ...def];
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
// deduplikacja z zachowaniem kolejności
|
|
231
|
+
const seen = new Set();
|
|
232
|
+
const out = [];
|
|
233
|
+
for (const t of ordered) {
|
|
234
|
+
if (typeof t === 'string' && !seen.has(t)) {
|
|
235
|
+
seen.add(t);
|
|
236
|
+
out.push(t);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return out;
|
|
240
|
+
}
|
|
241
|
+
applyDefaultProfileFields(metaOut) {
|
|
242
|
+
var _a;
|
|
243
|
+
const fields = (_a = this.profilerOptions) === null || _a === void 0 ? void 0 : _a.fieldsDefault;
|
|
244
|
+
if (fields && typeof fields === 'object') {
|
|
245
|
+
for (const key of Object.keys(fields)) {
|
|
246
|
+
if (metaOut[key] === undefined) {
|
|
247
|
+
metaOut[key] = fields[key];
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
shouldStartProfile() {
|
|
253
|
+
const p = this.profilerOptions || {};
|
|
254
|
+
// Jeśli użytkownik podał getLevel, nie możemy z góry określić poziomu -> profiluj
|
|
255
|
+
if (typeof p.getLevel === 'function')
|
|
256
|
+
return true;
|
|
257
|
+
const baseLevel = (p.level || 'debug');
|
|
258
|
+
if (this.isLevelEnabled(baseLevel))
|
|
259
|
+
return true;
|
|
260
|
+
// Jeżeli zdefiniowane progi, sprawdź czy wyższe poziomy są włączone
|
|
261
|
+
if (p.thresholdErrorMs !== undefined &&
|
|
262
|
+
this.isLevelEnabled('error')) {
|
|
263
|
+
return true;
|
|
264
|
+
}
|
|
265
|
+
if (p.thresholdWarnMs !== undefined &&
|
|
266
|
+
this.isLevelEnabled('warn')) {
|
|
267
|
+
return true;
|
|
268
|
+
}
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
makeProfileKey(label, meta) {
|
|
272
|
+
const profiler = this.profilerOptions || {};
|
|
273
|
+
try {
|
|
274
|
+
if (typeof (profiler === null || profiler === void 0 ? void 0 : profiler.keyFactory) === 'function') {
|
|
275
|
+
const k = profiler.keyFactory(label, meta);
|
|
276
|
+
if (k && typeof k === 'string')
|
|
277
|
+
return k;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
catch (e) {
|
|
281
|
+
console.warn('[scribelog] profiler.keyFactory threw:', e);
|
|
282
|
+
}
|
|
283
|
+
const rid = (profiler === null || profiler === void 0 ? void 0 : profiler.namespaceWithRequestId) && typeof requestContext_1.getRequestId === 'function'
|
|
284
|
+
? (0, requestContext_1.getRequestId)()
|
|
285
|
+
: undefined;
|
|
286
|
+
this.profileSeq = (this.profileSeq + 1) % Number.MAX_SAFE_INTEGER;
|
|
287
|
+
const prefix = rid ? `${rid}:` : '';
|
|
288
|
+
return `${prefix}${label}#${this.profileSeq}`;
|
|
289
|
+
}
|
|
290
|
+
pushLabelKey(label, key) {
|
|
291
|
+
const stack = this.labelStacks.get(label) || [];
|
|
292
|
+
stack.push(key);
|
|
293
|
+
this.labelStacks.set(label, stack);
|
|
294
|
+
}
|
|
295
|
+
popLabelKey(label) {
|
|
296
|
+
const stack = this.labelStacks.get(label);
|
|
297
|
+
if (!stack || stack.length === 0)
|
|
298
|
+
return undefined;
|
|
299
|
+
const key = stack.pop();
|
|
300
|
+
if (stack.length === 0)
|
|
301
|
+
this.labelStacks.delete(label);
|
|
302
|
+
else
|
|
303
|
+
this.labelStacks.set(label, stack);
|
|
304
|
+
return key;
|
|
305
|
+
}
|
|
306
|
+
removeLabelKey(label, key) {
|
|
307
|
+
const stack = this.labelStacks.get(label);
|
|
308
|
+
if (!stack || stack.length === 0)
|
|
309
|
+
return;
|
|
310
|
+
const idx = stack.lastIndexOf(key);
|
|
311
|
+
if (idx >= 0) {
|
|
312
|
+
stack.splice(idx, 1);
|
|
313
|
+
if (stack.length === 0)
|
|
314
|
+
this.labelStacks.delete(label);
|
|
315
|
+
else
|
|
316
|
+
this.labelStacks.set(label, stack);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
removeProfileByKey(key) {
|
|
320
|
+
// Usuń z profiles i powiązanych struktur
|
|
321
|
+
this.profiles.delete(key);
|
|
322
|
+
this.profileStartMeta.delete(key);
|
|
323
|
+
const label = this.keyToLabel.get(key);
|
|
324
|
+
if (label) {
|
|
325
|
+
this.removeLabelKey(label, key);
|
|
326
|
+
this.keyToLabel.delete(key);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
cleanupProfiles() {
|
|
330
|
+
var _a, _b;
|
|
331
|
+
const ttlMs = (_a = this.profilerOptions) === null || _a === void 0 ? void 0 : _a.ttlMs;
|
|
332
|
+
if (typeof ttlMs === 'number' && ttlMs > 0) {
|
|
333
|
+
const now = process.hrtime.bigint();
|
|
334
|
+
const ttlNs = BigInt(Math.floor(ttlMs * 1e6)); // ms -> ns
|
|
335
|
+
// profiles: Map<key, startNs>
|
|
336
|
+
for (const [key, startNs] of this.profiles) {
|
|
337
|
+
const ageNs = now - startNs;
|
|
338
|
+
if (ageNs > ttlNs) {
|
|
339
|
+
// Orphan cleanup
|
|
340
|
+
this.removeProfileByKey(key);
|
|
341
|
+
// Uwaga: używamy console.warn aby uniknąć rekurencji loggera
|
|
342
|
+
console.warn(`[scribelog] Removed orphaned profile "${key}" after exceeding TTL ${ttlMs}ms`);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
const maxActive = (_b = this.profilerOptions) === null || _b === void 0 ? void 0 : _b.maxActiveProfiles;
|
|
347
|
+
if (typeof maxActive === 'number' && maxActive > 0) {
|
|
348
|
+
while (this.profiles.size > maxActive) {
|
|
349
|
+
// Usuń najstarszy (Map zachowuje kolejność wstawiania)
|
|
350
|
+
const oldestKey = this.profiles.keys().next().value;
|
|
351
|
+
if (!oldestKey)
|
|
352
|
+
break;
|
|
353
|
+
this.removeProfileByKey(oldestKey);
|
|
354
|
+
console.warn(`[scribelog] Removed oldest active profile "${oldestKey}" due to maxActiveProfiles=${maxActive}`);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
}
|
|
150
358
|
// Metody logowania poziomów (error, warn, info itd.) są generowane dynamicznie.
|
|
151
359
|
// Metoda log
|
|
152
360
|
// ...existing code...
|
|
@@ -191,6 +399,204 @@ class Scribelog {
|
|
|
191
399
|
this.processAndTransport(logEntry);
|
|
192
400
|
}
|
|
193
401
|
// ...existing code...
|
|
402
|
+
profile(label, meta) {
|
|
403
|
+
var _a;
|
|
404
|
+
// Fast‑path: jeśli profilowanie wyłączone (np. brak debug i progów), nie zakładaj Map
|
|
405
|
+
if (!this.shouldStartProfile()) {
|
|
406
|
+
return { key: '', label }; // no-op handle
|
|
407
|
+
}
|
|
408
|
+
const key = this.makeProfileKey(label, meta);
|
|
409
|
+
this.profiles.set(key, process.hrtime.bigint());
|
|
410
|
+
if (meta && typeof meta === 'object') {
|
|
411
|
+
this.profileStartMeta.set(key, meta);
|
|
412
|
+
}
|
|
413
|
+
this.pushLabelKey(label, key);
|
|
414
|
+
this.keyToLabel.set(key, label);
|
|
415
|
+
// Egzekwuj maxActiveProfiles “na gorąco”
|
|
416
|
+
const maxActive = (_a = this.profilerOptions) === null || _a === void 0 ? void 0 : _a.maxActiveProfiles;
|
|
417
|
+
if (typeof maxActive === 'number' && maxActive > 0) {
|
|
418
|
+
while (this.profiles.size > maxActive) {
|
|
419
|
+
const oldestKey = this.profiles.keys().next().value;
|
|
420
|
+
if (!oldestKey || oldestKey === key)
|
|
421
|
+
break;
|
|
422
|
+
this.removeProfileByKey(oldestKey);
|
|
423
|
+
console.warn(`[scribelog] Removed oldest active profile "${oldestKey}" due to maxActiveProfiles=${maxActive}`);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
return { key, label };
|
|
427
|
+
}
|
|
428
|
+
profileEnd(labelOrHandle, meta) {
|
|
429
|
+
const isHandle = typeof labelOrHandle === 'object' && labelOrHandle !== null;
|
|
430
|
+
const label = isHandle
|
|
431
|
+
? labelOrHandle.label
|
|
432
|
+
: labelOrHandle;
|
|
433
|
+
const key = isHandle ? labelOrHandle.key : this.popLabelKey(label);
|
|
434
|
+
if (!key) {
|
|
435
|
+
return;
|
|
436
|
+
}
|
|
437
|
+
if (isHandle) {
|
|
438
|
+
this.removeLabelKey(label, key);
|
|
439
|
+
}
|
|
440
|
+
this.keyToLabel.delete(key);
|
|
441
|
+
const start = this.profiles.get(key);
|
|
442
|
+
// NEW: jeśli start nie istnieje (profil usunięty przez TTL/limit), nie loguj
|
|
443
|
+
if (start === undefined) {
|
|
444
|
+
this.profileStartMeta.delete(key);
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
const end = process.hrtime.bigint();
|
|
448
|
+
const durationMs = Number(end - start) / 1e6;
|
|
449
|
+
this.profiles.delete(key);
|
|
450
|
+
const startMeta = this.profileStartMeta.get(key);
|
|
451
|
+
if (startMeta)
|
|
452
|
+
this.profileStartMeta.delete(key);
|
|
453
|
+
const metaOut = Object.assign(Object.assign(Object.assign({}, (startMeta || {})), (meta || {})), { profileLabel: label, durationMs: Math.round(durationMs) });
|
|
454
|
+
metaOut.tags = this.composeProfileTags(metaOut.tags);
|
|
455
|
+
this.applyDefaultProfileFields(metaOut);
|
|
456
|
+
// Ustal poziom wg opcji/heurystyki
|
|
457
|
+
const profiler = this.profilerOptions || {};
|
|
458
|
+
let level = metaOut.level || profiler.level || 'debug';
|
|
459
|
+
if (typeof profiler.getLevel === 'function') {
|
|
460
|
+
level = profiler.getLevel(durationMs, metaOut);
|
|
461
|
+
}
|
|
462
|
+
else if (profiler.thresholdErrorMs !== undefined &&
|
|
463
|
+
durationMs >= profiler.thresholdErrorMs) {
|
|
464
|
+
level = 'error';
|
|
465
|
+
}
|
|
466
|
+
else if (profiler.thresholdWarnMs !== undefined &&
|
|
467
|
+
durationMs >= profiler.thresholdWarnMs) {
|
|
468
|
+
level = 'warn';
|
|
469
|
+
}
|
|
470
|
+
if ('level' in metaOut)
|
|
471
|
+
delete metaOut.level;
|
|
472
|
+
this.emitProfileEvent({
|
|
473
|
+
label,
|
|
474
|
+
durationMs: Math.round(durationMs),
|
|
475
|
+
level,
|
|
476
|
+
metaOut,
|
|
477
|
+
key,
|
|
478
|
+
});
|
|
479
|
+
// Poprawka: użyj wyliczonego poziomu
|
|
480
|
+
this.log(level, label, metaOut);
|
|
481
|
+
}
|
|
482
|
+
// Alias: time/timeEnd
|
|
483
|
+
time(label, meta) {
|
|
484
|
+
this.profile(label, meta);
|
|
485
|
+
}
|
|
486
|
+
timeEnd(labelOrHandle, meta) {
|
|
487
|
+
this.profileEnd(labelOrHandle, meta);
|
|
488
|
+
}
|
|
489
|
+
// Wygodne pomiary bloków sync/async
|
|
490
|
+
timeSync(label, fn, meta) {
|
|
491
|
+
// Fast‑path: wyłączone profilowanie -> bez logowania
|
|
492
|
+
if (!this.shouldStartProfile()) {
|
|
493
|
+
return fn();
|
|
494
|
+
}
|
|
495
|
+
const start = process.hrtime.bigint();
|
|
496
|
+
try {
|
|
497
|
+
return fn();
|
|
498
|
+
}
|
|
499
|
+
finally {
|
|
500
|
+
const durationMs = Number(process.hrtime.bigint() - start) / 1e6;
|
|
501
|
+
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 });
|
|
502
|
+
metaOut.tags = this.composeProfileTags(metaOut.tags);
|
|
503
|
+
this.applyDefaultProfileFields(metaOut);
|
|
504
|
+
const profiler = this.profilerOptions || {};
|
|
505
|
+
let level = metaOut.level || profiler.level || 'debug';
|
|
506
|
+
if (typeof profiler.getLevel === 'function') {
|
|
507
|
+
level = profiler.getLevel(durationMs, metaOut);
|
|
508
|
+
}
|
|
509
|
+
else if (profiler.thresholdErrorMs !== undefined &&
|
|
510
|
+
durationMs >= profiler.thresholdErrorMs) {
|
|
511
|
+
level = 'error';
|
|
512
|
+
}
|
|
513
|
+
else if (profiler.thresholdWarnMs !== undefined &&
|
|
514
|
+
durationMs >= profiler.thresholdWarnMs) {
|
|
515
|
+
level = 'warn';
|
|
516
|
+
}
|
|
517
|
+
if ('level' in metaOut)
|
|
518
|
+
delete metaOut.level;
|
|
519
|
+
this.emitProfileEvent({
|
|
520
|
+
label,
|
|
521
|
+
durationMs: Math.round(durationMs),
|
|
522
|
+
success: true,
|
|
523
|
+
level,
|
|
524
|
+
metaOut,
|
|
525
|
+
});
|
|
526
|
+
this.log(level, label, metaOut);
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
timeAsync(label, fn, meta) {
|
|
530
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
531
|
+
// Fast‑path: wyłączone profilowanie -> bez logowania
|
|
532
|
+
if (!this.shouldStartProfile()) {
|
|
533
|
+
return fn();
|
|
534
|
+
}
|
|
535
|
+
const start = process.hrtime.bigint();
|
|
536
|
+
try {
|
|
537
|
+
const result = yield fn();
|
|
538
|
+
const durationMs = Number(process.hrtime.bigint() - start) / 1e6;
|
|
539
|
+
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 });
|
|
540
|
+
metaOut.tags = this.composeProfileTags(metaOut.tags);
|
|
541
|
+
this.applyDefaultProfileFields(metaOut);
|
|
542
|
+
const profiler = this.profilerOptions || {};
|
|
543
|
+
let level = metaOut.level || profiler.level || 'debug';
|
|
544
|
+
if (typeof profiler.getLevel === 'function') {
|
|
545
|
+
level = profiler.getLevel(durationMs, metaOut);
|
|
546
|
+
}
|
|
547
|
+
else if (profiler.thresholdErrorMs !== undefined &&
|
|
548
|
+
durationMs >= profiler.thresholdErrorMs) {
|
|
549
|
+
level = 'error';
|
|
550
|
+
}
|
|
551
|
+
else if (profiler.thresholdWarnMs !== undefined &&
|
|
552
|
+
durationMs >= profiler.thresholdWarnMs) {
|
|
553
|
+
level = 'warn';
|
|
554
|
+
}
|
|
555
|
+
if ('level' in metaOut)
|
|
556
|
+
delete metaOut.level;
|
|
557
|
+
this.emitProfileEvent({
|
|
558
|
+
label,
|
|
559
|
+
durationMs: Math.round(durationMs),
|
|
560
|
+
success: true,
|
|
561
|
+
level,
|
|
562
|
+
metaOut,
|
|
563
|
+
});
|
|
564
|
+
this.log(level, label, metaOut);
|
|
565
|
+
return result;
|
|
566
|
+
}
|
|
567
|
+
catch (error) {
|
|
568
|
+
const durationMs = Number(process.hrtime.bigint() - start) / 1e6;
|
|
569
|
+
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 });
|
|
570
|
+
metaOut.tags = this.composeProfileTags(metaOut.tags);
|
|
571
|
+
this.applyDefaultProfileFields(metaOut);
|
|
572
|
+
const profiler = this.profilerOptions || {};
|
|
573
|
+
let level = metaOut.level || profiler.level || 'debug';
|
|
574
|
+
if (typeof profiler.getLevel === 'function') {
|
|
575
|
+
level = profiler.getLevel(durationMs, metaOut);
|
|
576
|
+
}
|
|
577
|
+
else if (profiler.thresholdErrorMs !== undefined &&
|
|
578
|
+
durationMs >= profiler.thresholdErrorMs) {
|
|
579
|
+
level = 'error';
|
|
580
|
+
}
|
|
581
|
+
else if (profiler.thresholdWarnMs !== undefined &&
|
|
582
|
+
durationMs >= profiler.thresholdWarnMs) {
|
|
583
|
+
level = 'warn';
|
|
584
|
+
}
|
|
585
|
+
if ('level' in metaOut)
|
|
586
|
+
delete metaOut.level;
|
|
587
|
+
// FIX: emit success=false w evencie
|
|
588
|
+
this.emitProfileEvent({
|
|
589
|
+
label,
|
|
590
|
+
durationMs: Math.round(durationMs),
|
|
591
|
+
success: false,
|
|
592
|
+
level,
|
|
593
|
+
metaOut,
|
|
594
|
+
});
|
|
595
|
+
this.log(level, label, metaOut);
|
|
596
|
+
throw error;
|
|
597
|
+
}
|
|
598
|
+
});
|
|
599
|
+
}
|
|
194
600
|
// Metoda logEntry
|
|
195
601
|
logEntry(entry) {
|
|
196
602
|
var _a;
|
|
@@ -261,6 +667,16 @@ class Scribelog {
|
|
|
261
667
|
process.removeListener('unhandledRejection', this.rejectionHandler);
|
|
262
668
|
this.rejectionHandler = undefined;
|
|
263
669
|
}
|
|
670
|
+
if (this.cleanupTimer) {
|
|
671
|
+
clearInterval(this.cleanupTimer);
|
|
672
|
+
this.cleanupTimer = undefined;
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
dispose() {
|
|
676
|
+
if (this.cleanupTimer) {
|
|
677
|
+
clearInterval(this.cleanupTimer);
|
|
678
|
+
this.cleanupTimer = undefined;
|
|
679
|
+
}
|
|
264
680
|
}
|
|
265
681
|
// Metoda processAndTransport
|
|
266
682
|
processAndTransport(logEntry) {
|
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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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -29,6 +29,10 @@ 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;
|
|
@@ -47,6 +51,31 @@ export interface LoggerOptions {
|
|
|
47
51
|
handleExceptions?: boolean;
|
|
48
52
|
handleRejections?: boolean;
|
|
49
53
|
exitOnError?: boolean;
|
|
54
|
+
profiler?: {
|
|
55
|
+
level?: LogLevel;
|
|
56
|
+
thresholdWarnMs?: number;
|
|
57
|
+
thresholdErrorMs?: number;
|
|
58
|
+
getLevel?: (durationMs: number, meta?: Record<string, any>) => LogLevel;
|
|
59
|
+
namespaceWithRequestId?: boolean;
|
|
60
|
+
keyFactory?: (label: string, meta?: Record<string, any>) => string;
|
|
61
|
+
ttlMs?: number;
|
|
62
|
+
cleanupIntervalMs?: number;
|
|
63
|
+
maxActiveProfiles?: number;
|
|
64
|
+
tagsDefault?: string[];
|
|
65
|
+
tagsMode?: 'append' | 'prepend' | 'replace';
|
|
66
|
+
fieldsDefault?: Record<string, any>;
|
|
67
|
+
onMeasure?: (event: ProfileEvent) => void;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export interface ProfileEvent {
|
|
71
|
+
label: string;
|
|
72
|
+
durationMs: number;
|
|
73
|
+
success?: boolean;
|
|
74
|
+
level: LogLevel;
|
|
75
|
+
tags?: string[];
|
|
76
|
+
requestId?: string;
|
|
77
|
+
meta?: Record<string, any>;
|
|
78
|
+
key?: string;
|
|
50
79
|
}
|
|
51
80
|
interface BaseLoggerInterface {
|
|
52
81
|
logEntry(entry: Omit<LogInfo, 'timestamp' | 'level' | 'message'> & Partial<Pick<LogInfo, 'level' | 'message' | 'splat'>> & {
|
|
@@ -58,7 +87,14 @@ interface BaseLoggerInterface {
|
|
|
58
87
|
isLevelEnabled(level: LogLevel): boolean;
|
|
59
88
|
addTransport(transport: Transport): void;
|
|
60
89
|
removeExceptionHandlers?(): void;
|
|
90
|
+
dispose(): void;
|
|
61
91
|
child(defaultMeta: Record<string, any>): LoggerInterface;
|
|
92
|
+
profile(label: string, meta?: Record<string, any>): ProfileHandle;
|
|
93
|
+
profileEnd(labelOrHandle: string | ProfileHandle, meta?: Record<string, any>): void;
|
|
94
|
+
time(label: string, meta?: Record<string, any>): void;
|
|
95
|
+
timeEnd(labelOrHandle: string | ProfileHandle, meta?: Record<string, any>): void;
|
|
96
|
+
timeSync<T>(label: string, fn: () => T, meta?: Record<string, any>): T;
|
|
97
|
+
timeAsync<T>(label: string, fn: () => Promise<T>, meta?: Record<string, any>): Promise<T>;
|
|
62
98
|
}
|
|
63
99
|
type LogLevelMethods = {
|
|
64
100
|
[level: string]: (message: any, ...args: any[]) => void;
|
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":";;AAqKA,wBAAwB"}
|