@pristine-ts/logging 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/cjs/handlers/breadcrumb.handler.js +6 -1
- package/dist/lib/cjs/handlers/breadcrumb.handler.js.map +1 -1
- package/dist/lib/cjs/handlers/log.handler.js +32 -9
- package/dist/lib/cjs/handlers/log.handler.js.map +1 -1
- package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/lib/esm/handlers/breadcrumb.handler.js +7 -2
- package/dist/lib/esm/handlers/breadcrumb.handler.js.map +1 -1
- package/dist/lib/esm/handlers/log.handler.js +33 -10
- package/dist/lib/esm/handlers/log.handler.js.map +1 -1
- package/dist/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/types/handlers/breadcrumb.handler.d.ts +1 -1
- package/dist/types/interfaces/breadcrumb-handler.interface.d.ts +7 -7
- package/package.json +4 -4
|
@@ -6,14 +6,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { LoggingModuleKeyname } from "../logging.module.keyname";
|
|
8
8
|
import { injectable, Lifecycle, scoped } from "tsyringe";
|
|
9
|
-
import { moduleScoped, tag } from "@pristine-ts/common";
|
|
9
|
+
import { EventContextManager, moduleScoped, tag } from "@pristine-ts/common";
|
|
10
10
|
import { BreadcrumbModel } from "../models/breadcrumb.model";
|
|
11
11
|
let BreadcrumbHandler = class BreadcrumbHandler {
|
|
12
12
|
constructor() {
|
|
13
13
|
this.breadcrumbs = {};
|
|
14
14
|
}
|
|
15
15
|
add(eventId, message, extra) {
|
|
16
|
-
|
|
16
|
+
const resolvedEventId = eventId !== null && eventId !== void 0 ? eventId : EventContextManager.eventId();
|
|
17
|
+
if (resolvedEventId === undefined) {
|
|
18
|
+
// No id to file the breadcrumb under and no active event context — drop silently.
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
this.addBreadcrumb(resolvedEventId, new BreadcrumbModel(message, extra));
|
|
17
22
|
}
|
|
18
23
|
reset(eventId) {
|
|
19
24
|
delete this.breadcrumbs[eventId];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumb.handler.js","sourceRoot":"","sources":["../../../../src/handlers/breadcrumb.handler.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AACvD,OAAO,EAAC,YAAY,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"breadcrumb.handler.js","sourceRoot":"","sources":["../../../../src/handlers/breadcrumb.handler.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AACvD,OAAO,EAAC,mBAAmB,EAAE,YAAY,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAMpD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAAvB;QACE,gBAAW,GAA+C,EAAE,CAAC;IAsBtE,CAAC;IApBC,GAAG,CAAC,OAA2B,EAAE,OAAe,EAAE,KAAW;QAC3D,MAAM,eAAe,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,mBAAmB,CAAC,OAAO,EAAE,CAAC;QACjE,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,kFAAkF;YAClF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,aAAa,CAAC,OAAe,EAAE,UAA2B;QACxD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AAvBY,iBAAiB;IAJ7B,YAAY,CAAC,oBAAoB,CAAC;IAClC,GAAG,CAAC,4BAA4B,CAAC;IACjC,UAAU,EAAE;IACZ,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;GACrB,iBAAiB,CAuB7B"}
|
|
@@ -15,7 +15,7 @@ import { inject, injectable, injectAll, Lifecycle, scoped } from "tsyringe";
|
|
|
15
15
|
import { LoggingConfigurationKeys } from "../logging.configuration-keys";
|
|
16
16
|
import { SeverityEnum } from "../enums/severity.enum";
|
|
17
17
|
import { LogModel } from "../models/log.model";
|
|
18
|
-
import { injectConfig, InternalContainerParameterEnum, moduleScoped, ServiceDefinitionTagEnum, tag, TracingContext } from "@pristine-ts/common";
|
|
18
|
+
import { EventContextManager, injectConfig, InternalContainerParameterEnum, moduleScoped, ServiceDefinitionTagEnum, tag, TracingContext } from "@pristine-ts/common";
|
|
19
19
|
import { Utils } from "../utils/utils";
|
|
20
20
|
import { LoggingModuleKeyname } from "../logging.module";
|
|
21
21
|
/**
|
|
@@ -104,28 +104,43 @@ let LogHandler = class LogHandler {
|
|
|
104
104
|
* @param data The data being passed to the log
|
|
105
105
|
*/
|
|
106
106
|
log(message, severity, data) {
|
|
107
|
-
var _a, _b, _c;
|
|
107
|
+
var _a, _b, _c, _d, _e;
|
|
108
108
|
const log = new LogModel(severity, message);
|
|
109
109
|
log.kernelInstantiationId = this.kernelInstantiationId;
|
|
110
|
-
|
|
110
|
+
// Resolve the trace id from the active EventContext first (the path forward), with a
|
|
111
|
+
// fallback to the legacy `TracingContext` (the per-child-container service that was
|
|
112
|
+
// the original mechanism). Code that goes through `TracingManager.startTracing` writes
|
|
113
|
+
// both, so the common path works through either branch; the fallback exists for
|
|
114
|
+
// pre-ALS code that sets `tracingContext.traceId` directly without involving the
|
|
115
|
+
// manager. Once `TracingContext` is removed in a future major, this collapses to just
|
|
116
|
+
// the EventContext read.
|
|
117
|
+
log.traceId = (_a = EventContextManager.traceId()) !== null && _a !== void 0 ? _a : this.tracingContext.traceId;
|
|
111
118
|
log.date = new Date();
|
|
119
|
+
// Resolve the eventId once. Explicit `data.eventId` always wins (callers that want
|
|
120
|
+
// to log against a different event — e.g. a parent log line during fan-out — keep
|
|
121
|
+
// their override). When the caller didn't pass one, fall back to the active
|
|
122
|
+
// EventContext so we don't have to thread `eventId: request.id` through every call
|
|
123
|
+
// site. Outside any EventContext (e.g. logs from boot, before the pipeline starts),
|
|
124
|
+
// both are undefined and the field is omitted from the output — same as today.
|
|
125
|
+
const resolvedEventId = (_b = data === null || data === void 0 ? void 0 : data.eventId) !== null && _b !== void 0 ? _b : EventContextManager.eventId();
|
|
112
126
|
// Handle the data parameter to extract highlights and extra information.
|
|
113
127
|
if (data) {
|
|
114
128
|
// Check if data is in the structured format { highlights, extra }
|
|
115
129
|
if (typeof data === 'object' && data !== null && !Array.isArray(data) && (data.hasOwnProperty('highlights') || data.hasOwnProperty('extra') || data.hasOwnProperty('eventId'))) {
|
|
116
|
-
log.highlights = (
|
|
130
|
+
log.highlights = (_c = data.highlights) !== null && _c !== void 0 ? _c : {};
|
|
117
131
|
log.extra = data.extra;
|
|
118
|
-
log.eventId =
|
|
132
|
+
log.eventId = resolvedEventId;
|
|
119
133
|
}
|
|
120
134
|
else {
|
|
121
135
|
// Otherwise, treat the entire data object as 'extra'
|
|
122
136
|
log.extra = data;
|
|
137
|
+
log.eventId = resolvedEventId;
|
|
123
138
|
}
|
|
124
139
|
if (data.breadcrumb) {
|
|
125
|
-
this.breadcrumbHandler.add(
|
|
140
|
+
this.breadcrumbHandler.add(resolvedEventId, data.breadcrumb);
|
|
126
141
|
}
|
|
127
|
-
if (
|
|
128
|
-
log.breadcrumbs = this.breadcrumbHandler.breadcrumbs[
|
|
142
|
+
if (resolvedEventId) {
|
|
143
|
+
log.breadcrumbs = this.breadcrumbHandler.breadcrumbs[resolvedEventId];
|
|
129
144
|
}
|
|
130
145
|
if (data.outputHints) {
|
|
131
146
|
log.outputHints = data.outputHints;
|
|
@@ -134,6 +149,14 @@ let LogHandler = class LogHandler {
|
|
|
134
149
|
log.eventGroupId = data.eventGroupId;
|
|
135
150
|
}
|
|
136
151
|
}
|
|
152
|
+
else {
|
|
153
|
+
// No `data` arg at all — still try to attach the eventId from the active context
|
|
154
|
+
// so a bare `logHandler.info("...")` from within a request gets correlated.
|
|
155
|
+
log.eventId = resolvedEventId;
|
|
156
|
+
if (resolvedEventId) {
|
|
157
|
+
log.breadcrumbs = this.breadcrumbHandler.breadcrumbs[resolvedEventId];
|
|
158
|
+
}
|
|
159
|
+
}
|
|
137
160
|
// If the activateDiagnostics configuration is set to true, we will include additional information into a __diagnostics path into extra.
|
|
138
161
|
// This is an intensive process so be careful, it will dramatically slow down your calls.
|
|
139
162
|
if (this.activateDiagnostics) {
|
|
@@ -179,12 +202,12 @@ let LogHandler = class LogHandler {
|
|
|
179
202
|
}
|
|
180
203
|
}
|
|
181
204
|
catch (error) {
|
|
182
|
-
const name = (
|
|
205
|
+
const name = (_e = (_d = logger === null || logger === void 0 ? void 0 : logger.constructor) === null || _d === void 0 ? void 0 : _d.name) !== null && _e !== void 0 ? _e : "UnknownLogger";
|
|
183
206
|
const message = error instanceof Error ? `${error.name}: ${error.message}` : String(error);
|
|
184
207
|
try {
|
|
185
208
|
process.stderr.write(`[pristine][log-handler] logger '${name}' threw during dispatch: ${message}\n`);
|
|
186
209
|
}
|
|
187
|
-
catch (
|
|
210
|
+
catch (_f) {
|
|
188
211
|
// Nothing useful left to do if stderr is unavailable.
|
|
189
212
|
}
|
|
190
213
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.handler.js","sourceRoot":"","sources":["../../../../src/handlers/log.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAC,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAC,YAAY,EAAE,8BAA8B,EAAE,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAE,cAAc,EAAC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"log.handler.js","sourceRoot":"","sources":["../../../../src/handlers/log.handler.ts"],"names":[],"mappings":"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"}
|