@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.
@@ -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
- this.addBreadcrumb(eventId, new BreadcrumbModel(message, extra));
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;AACtD,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAMpD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAAvB;QACE,gBAAW,GAA+C,EAAE,CAAC;IAiBtE,CAAC;IAfC,GAAG,CAAC,OAAe,EAAE,OAAe,EAAE,KAAW;QAC/C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,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;AAlBY,iBAAiB;IAJ7B,YAAY,CAAC,oBAAoB,CAAC;IAClC,GAAG,CAAC,4BAA4B,CAAC;IACjC,UAAU,EAAE;IACZ,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;GACrB,iBAAiB,CAkB7B"}
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
- log.traceId = this.tracingContext.traceId;
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 = (_a = data.highlights) !== null && _a !== void 0 ? _a : {};
130
+ log.highlights = (_c = data.highlights) !== null && _c !== void 0 ? _c : {};
117
131
  log.extra = data.extra;
118
- log.eventId = data.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(data.eventId, data.breadcrumb);
140
+ this.breadcrumbHandler.add(resolvedEventId, data.breadcrumb);
126
141
  }
127
- if (data.eventId) {
128
- log.breadcrumbs = this.breadcrumbHandler.breadcrumbs[data.eventId];
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 = (_c = (_b = logger === null || logger === void 0 ? void 0 : logger.constructor) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : "UnknownLogger";
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 (_d) {
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":"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"}
1
+ {"version":3,"file":"log.handler.js","sourceRoot":"","sources":["../../../../src/handlers/log.handler.ts"],"names":[],"mappings":"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"}