@decaf-ts/logging 0.10.0 → 0.10.2

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.
Files changed (100) hide show
  1. package/README.md +298 -171
  2. package/dist/logging.cjs +1 -1
  3. package/dist/logging.cjs.map +1 -1
  4. package/dist/logging.js +1 -1
  5. package/dist/logging.js.map +1 -1
  6. package/lib/LoggedClass.cjs +4 -4
  7. package/lib/LoggedClass.d.ts +4 -4
  8. package/lib/constants.cjs +32 -63
  9. package/lib/constants.d.ts +32 -63
  10. package/lib/constants.js.map +1 -1
  11. package/lib/decorators.cjs +28 -28
  12. package/lib/decorators.d.ts +29 -36
  13. package/lib/decorators.js.map +1 -1
  14. package/lib/environment.cjs +34 -41
  15. package/lib/environment.d.ts +31 -32
  16. package/lib/environment.js.map +1 -1
  17. package/lib/esm/LoggedClass.d.ts +4 -4
  18. package/lib/esm/LoggedClass.js +4 -4
  19. package/lib/esm/constants.d.ts +32 -63
  20. package/lib/esm/constants.js +32 -63
  21. package/lib/esm/constants.js.map +1 -1
  22. package/lib/esm/decorators.d.ts +29 -36
  23. package/lib/esm/decorators.js +28 -28
  24. package/lib/esm/decorators.js.map +1 -1
  25. package/lib/esm/environment.d.ts +31 -32
  26. package/lib/esm/environment.js +34 -41
  27. package/lib/esm/environment.js.map +1 -1
  28. package/lib/esm/filters/LogFilter.d.ts +11 -11
  29. package/lib/esm/filters/LogFilter.js +5 -5
  30. package/lib/esm/filters/PatternFilter.d.ts +15 -15
  31. package/lib/esm/filters/PatternFilter.js +12 -12
  32. package/lib/esm/index.d.ts +2 -2
  33. package/lib/esm/index.js +3 -3
  34. package/lib/esm/logging.d.ts +119 -113
  35. package/lib/esm/logging.js +223 -138
  36. package/lib/esm/logging.js.map +1 -1
  37. package/lib/esm/pino/index.d.ts +6 -0
  38. package/lib/esm/pino/index.js +6 -0
  39. package/lib/esm/pino/index.js.map +1 -1
  40. package/lib/esm/pino/pino.d.ts +13 -5
  41. package/lib/esm/pino/pino.js +70 -124
  42. package/lib/esm/pino/pino.js.map +1 -1
  43. package/lib/esm/text.d.ts +29 -67
  44. package/lib/esm/text.js +29 -67
  45. package/lib/esm/text.js.map +1 -1
  46. package/lib/esm/time.d.ts +45 -43
  47. package/lib/esm/time.js +38 -36
  48. package/lib/esm/time.js.map +1 -1
  49. package/lib/esm/types.d.ts +59 -50
  50. package/lib/esm/utils.d.ts +43 -0
  51. package/lib/esm/utils.js +55 -3
  52. package/lib/esm/utils.js.map +1 -1
  53. package/lib/esm/web.d.ts +2 -2
  54. package/lib/esm/web.js +2 -2
  55. package/lib/esm/winston/index.d.ts +7 -0
  56. package/lib/esm/winston/index.js +7 -1
  57. package/lib/esm/winston/index.js.map +1 -1
  58. package/lib/esm/winston/winston.d.ts +17 -21
  59. package/lib/esm/winston/winston.js +29 -36
  60. package/lib/esm/winston/winston.js.map +1 -1
  61. package/lib/filters/LogFilter.cjs +5 -5
  62. package/lib/filters/LogFilter.d.ts +11 -11
  63. package/lib/filters/PatternFilter.cjs +12 -12
  64. package/lib/filters/PatternFilter.d.ts +15 -15
  65. package/lib/index.cjs +3 -3
  66. package/lib/index.d.ts +2 -2
  67. package/lib/logging.cjs +224 -139
  68. package/lib/logging.d.ts +119 -113
  69. package/lib/logging.js.map +1 -1
  70. package/lib/pino/index.cjs +6 -0
  71. package/lib/pino/index.d.ts +6 -0
  72. package/lib/pino/index.js.map +1 -1
  73. package/lib/pino/pino.cjs +102 -126
  74. package/lib/pino/pino.d.ts +13 -5
  75. package/lib/pino/pino.js.map +1 -1
  76. package/lib/text.cjs +29 -67
  77. package/lib/text.d.ts +29 -67
  78. package/lib/text.js.map +1 -1
  79. package/lib/time.cjs +38 -36
  80. package/lib/time.d.ts +45 -43
  81. package/lib/time.js.map +1 -1
  82. package/lib/types.d.ts +59 -50
  83. package/lib/utils.cjs +55 -3
  84. package/lib/utils.d.ts +43 -0
  85. package/lib/utils.js.map +1 -1
  86. package/lib/web.cjs +2 -2
  87. package/lib/web.d.ts +2 -2
  88. package/lib/winston/index.cjs +22 -0
  89. package/lib/winston/index.d.ts +7 -0
  90. package/lib/winston/index.js.map +1 -1
  91. package/lib/winston/winston.cjs +29 -36
  92. package/lib/winston/winston.d.ts +17 -21
  93. package/lib/winston/winston.js.map +1 -1
  94. package/package.json +9 -10
  95. package/lib/accumulate.types.cjs +0 -27
  96. package/lib/accumulate.types.d.ts +0 -1
  97. package/lib/accumulate.types.js.map +0 -1
  98. package/lib/esm/accumulate.types.d.ts +0 -1
  99. package/lib/esm/accumulate.types.js +0 -25
  100. package/lib/esm/accumulate.types.js.map +0 -1
@@ -3,13 +3,13 @@ import { DefaultTheme, LogLevel, NumericLogLevels } from "./constants.js";
3
3
  import { sf } from "./text.js";
4
4
  import { LoggedEnvironment } from "./environment.js";
5
5
  import { getObjectName, isClass, isFunction, isInstance } from "./utils.js";
6
+ export const ROOT_CONTEXT_SYMBOL = Symbol("MiniLoggerRootContext");
6
7
  /**
7
8
  * @description A minimal logger implementation.
8
- * @summary MiniLogger is a lightweight logging class that implements the Logger interface.
9
- * It provides basic logging functionality with support for different log levels, verbosity,
10
- * context-aware logging, and customizable formatting.
11
- * @param {string} context - The context (typically class name) this logger is associated with
12
- * @param {Partial<LoggingConfig>} conf - Optional configuration to override global settings
9
+ * @summary MiniLogger is a lightweight logging class that implements the Logger interface. It provides basic logging functionality with support for different log levels, verbosity, context-aware logging, and customizable formatting.
10
+ * @param {string} [context] - The context (typically class name) this logger is associated with.
11
+ * @param {Partial<LoggingConfig>} [conf] - Optional configuration to override global settings.
12
+ * @param {string[]} [baseContext=[]] - The base context for the logger.
13
13
  * @class MiniLogger
14
14
  * @example
15
15
  * // Create a new logger for a class
@@ -28,9 +28,13 @@ import { getObjectName, isClass, isFunction, isInstance } from "./utils.js";
28
28
  * logger.for('specialMethod', { style: true }).info('Styled message');
29
29
  */
30
30
  export class MiniLogger {
31
- constructor(context, conf) {
32
- this.context = context;
31
+ constructor(context, conf, baseContext = []) {
33
32
  this.conf = conf;
33
+ this.baseContext = Array.isArray(baseContext) ? [...baseContext] : [];
34
+ if (context)
35
+ this.baseContext.push(context);
36
+ this.context = [...this.baseContext];
37
+ this[ROOT_CONTEXT_SYMBOL] = [...this.baseContext];
34
38
  }
35
39
  config(key) {
36
40
  if (this.conf && key in this.conf)
@@ -38,17 +42,28 @@ export class MiniLogger {
38
42
  return Logging.getConfig()[key];
39
43
  }
40
44
  /**
41
- * @description Creates a child logger for a specific method or context
42
- * @summary Returns a new logger instance with the current context extended by the specified method name
43
- * @param {string | Function} method - The method name or function to create a logger for
44
- * @param {Partial<LoggingConfig>} config - Optional configuration to override settings
45
- * @param {...any[]} args - Additional arguments to pass to the logger factory
46
- * @return {Logger} A new logger instance for the specified method
45
+ * @description Creates a child logger for a specific method or context.
46
+ * @summary Returns a new logger instance with the current context extended by the specified method name.
47
+ * @param {string | Function | object | Partial<LoggingConfig>} [method] - The method name, function, or configuration to create a logger for.
48
+ * @param {Partial<LoggingConfig>} [config] - Optional configuration to override settings.
49
+ * @param {...any[]} args - Additional arguments to pass to the logger factory.
50
+ * @return {Logger} A new logger instance for the specified method.
47
51
  */
48
52
  for(method, config, ...args // eslint-disable-line @typescript-eslint/no-unused-vars
49
53
  ) {
50
54
  let contextName;
51
55
  let childConfig = config;
56
+ const parentContext = Array.isArray(this.context)
57
+ ? [...this.context]
58
+ : typeof this.context === "string" && this.context
59
+ ? [this.context]
60
+ : [];
61
+ const rootCandidate = this[ROOT_CONTEXT_SYMBOL];
62
+ const baseContext = Array.isArray(rootCandidate)
63
+ ? [...rootCandidate]
64
+ : Array.isArray(this.baseContext)
65
+ ? [...this.baseContext]
66
+ : [];
52
67
  if (typeof method === "string") {
53
68
  contextName = method;
54
69
  }
@@ -60,6 +75,9 @@ export class MiniLogger {
60
75
  childConfig = method;
61
76
  }
62
77
  }
78
+ let contextSegments = contextName
79
+ ? [...parentContext, contextName]
80
+ : [...parentContext];
63
81
  return new Proxy(this, {
64
82
  get: (target, p, receiver) => {
65
83
  const result = Reflect.get(target, p, receiver);
@@ -72,37 +90,65 @@ export class MiniLogger {
72
90
  }
73
91
  return Reflect.apply(target, receiver, argArray);
74
92
  },
75
- get: (target, p) => {
76
- if (childConfig && p in childConfig)
77
- return childConfig[p];
78
- return Reflect.get(target, p, receiver);
93
+ get: (target, key) => {
94
+ if (childConfig && key in childConfig)
95
+ return childConfig[key];
96
+ return Reflect.get(target, key, receiver);
79
97
  },
80
98
  });
81
99
  }
82
- if (p === "context" && contextName) {
83
- return [result, contextName].join(".");
100
+ if (p === "clear") {
101
+ return () => {
102
+ contextSegments = [...baseContext];
103
+ childConfig = undefined;
104
+ return receiver;
105
+ };
106
+ }
107
+ if (p === "context") {
108
+ return contextSegments;
109
+ }
110
+ if (p === "root") {
111
+ return [...baseContext];
112
+ }
113
+ if (p === ROOT_CONTEXT_SYMBOL) {
114
+ return baseContext;
115
+ }
116
+ if (p === "for") {
117
+ return (...innerArgs) => {
118
+ const originalContext = Array.isArray(target.context)
119
+ ? [...target.context]
120
+ : typeof target.context === "string" && target.context
121
+ ? [target.context]
122
+ : [];
123
+ target.context = [...contextSegments];
124
+ try {
125
+ // eslint-disable-next-line prefer-spread
126
+ return target.for.apply(target, innerArgs);
127
+ }
128
+ finally {
129
+ target.context = originalContext;
130
+ }
131
+ };
84
132
  }
85
133
  return result;
86
134
  },
87
135
  });
88
136
  }
89
137
  /**
90
- * @description Creates a formatted log string
91
- * @summary Generates a log string with timestamp, colored log level, context, and message
92
- * @param {LogLevel} level - The log level for this message
93
- * @param {StringLike | Error} message - The message to log or an Error object
94
- * @param {string} [error] - Optional error to extract stack trace to include in the log
95
- * @return {string} A formatted log string with all components
138
+ * @description Creates a formatted log string.
139
+ * @summary Generates a log string with timestamp, colored log level, context, and message.
140
+ * @param {LogLevel} level - The log level for this message.
141
+ * @param {StringLike | Error} message - The message to log or an Error object.
142
+ * @param {Error} [error] - Optional error to extract stack trace to include in the log.
143
+ * @return {string} A formatted log string with all components.
96
144
  */
97
145
  createLog(level, message, error) {
98
146
  const log = {};
99
147
  const style = this.config("style");
100
148
  const separator = this.config("separator");
101
- const app = this.config("app");
149
+ const app = Logging.getConfig().app;
102
150
  if (app)
103
- log.app = style
104
- ? Logging.theme(app, "app", level)
105
- : app;
151
+ log.app = style ? Logging.theme(app, "app", level) : app;
106
152
  if (separator)
107
153
  log.separator = style
108
154
  ? Logging.theme(separator, "separator", level)
@@ -119,10 +165,16 @@ export class MiniLogger {
119
165
  log.level = lvl.toUpperCase();
120
166
  }
121
167
  if (this.config("context")) {
122
- const context = style
123
- ? Logging.theme(this.context, "class", level)
124
- : this.context;
125
- log.context = context;
168
+ const contextSegments = Array.isArray(this.context)
169
+ ? this.context
170
+ : typeof this.context === "string" && this.context
171
+ ? [this.context]
172
+ : [];
173
+ if (contextSegments.length) {
174
+ const joined = contextSegments.join(this.config("contextSeparator") || ".");
175
+ const context = style ? Logging.theme(joined, "class", level) : joined;
176
+ log.context = context;
177
+ }
126
178
  }
127
179
  if (this.config("correlationId")) {
128
180
  {
@@ -165,12 +217,11 @@ export class MiniLogger {
165
217
  }
166
218
  }
167
219
  /**
168
- * @description Logs a message with the specified log level
169
- * @summary Checks if the message should be logged based on the current log level,
170
- * then uses the appropriate console method to output the formatted log
171
- * @param {LogLevel} level - The log level of the message
172
- * @param {StringLike | Error} msg - The message to be logged or an Error object
173
- * @param {string} [error] - Optional stack trace to include in the log
220
+ * @description Logs a message with the specified log level.
221
+ * @summary Checks if the message should be logged based on the current log level, then uses the appropriate console method to output the formatted log.
222
+ * @param {LogLevel} level - The log level of the message.
223
+ * @param {StringLike | Error} msg - The message to be logged or an Error object.
224
+ * @param {Error} [error] - Optional stack trace to include in the log.
174
225
  * @return {void}
175
226
  */
176
227
  log(level, msg, error) {
@@ -207,19 +258,19 @@ export class MiniLogger {
207
258
  method(this.createLog(level, msg, error));
208
259
  }
209
260
  /**
210
- * @description Logs a message at the benchmark level
211
- * @summary Logs a message at the benchmark level if the current verbosity setting allows it
212
- * @param {StringLike} msg - The message to be logged
261
+ * @description Logs a message at the benchmark level.
262
+ * @summary Logs a message at the benchmark level if the current verbosity setting allows it.
263
+ * @param {StringLike} msg - The message to be logged.
213
264
  * @return {void}
214
265
  */
215
266
  benchmark(msg) {
216
267
  this.log(LogLevel.benchmark, msg);
217
268
  }
218
269
  /**
219
- * @description Logs a message at the silly level
220
- * @summary Logs a message at the silly level if the current verbosity setting allows it
221
- * @param {StringLike} msg - The message to be logged
222
- * @param {number} [verbosity=0] - The verbosity level of the message
270
+ * @description Logs a message at the silly level.
271
+ * @summary Logs a message at the silly level if the current verbosity setting allows it.
272
+ * @param {StringLike} msg - The message to be logged.
273
+ * @param {number} [verbosity=0] - The verbosity level of the message.
223
274
  * @return {void}
224
275
  */
225
276
  silly(msg, verbosity = 0) {
@@ -227,10 +278,10 @@ export class MiniLogger {
227
278
  this.log(LogLevel.silly, msg);
228
279
  }
229
280
  /**
230
- * @description Logs a message at the verbose level
231
- * @summary Logs a message at the verbose level if the current verbosity setting allows it
232
- * @param {StringLike} msg - The message to be logged
233
- * @param {number} [verbosity=0] - The verbosity level of the message
281
+ * @description Logs a message at the verbose level.
282
+ * @summary Logs a message at the verbose level if the current verbosity setting allows it.
283
+ * @param {StringLike} msg - The message to be logged.
284
+ * @param {number} [verbosity=0] - The verbosity level of the message.
234
285
  * @return {void}
235
286
  */
236
287
  verbose(msg, verbosity = 0) {
@@ -238,66 +289,76 @@ export class MiniLogger {
238
289
  this.log(LogLevel.verbose, msg);
239
290
  }
240
291
  /**
241
- * @description Logs a message at the info level
242
- * @summary Logs a message at the info level for general application information
243
- * @param {StringLike} msg - The message to be logged
292
+ * @description Logs a message at the info level.
293
+ * @summary Logs a message at the info level for general application information.
294
+ * @param {StringLike} msg - The message to be logged.
244
295
  * @return {void}
245
296
  */
246
297
  info(msg) {
247
298
  this.log(LogLevel.info, msg);
248
299
  }
249
300
  /**
250
- * @description Logs a message at the debug level
251
- * @summary Logs a message at the debug level for detailed troubleshooting information
252
- * @param {StringLike} msg - The message to be logged
301
+ * @description Logs a message at the debug level.
302
+ * @summary Logs a message at the debug level for detailed troubleshooting information.
303
+ * @param {StringLike} msg - The message to be logged.
253
304
  * @return {void}
254
305
  */
255
306
  debug(msg) {
256
307
  this.log(LogLevel.debug, msg);
257
308
  }
258
309
  /**
259
- * @description Logs a message at the error level
260
- * @summary Logs a message at the error level for errors and exceptions
261
- * @param {StringLike | Error} msg - The message to be logged or an Error object
262
- * @param e
310
+ * @description Logs a message at the error level.
311
+ * @summary Logs a message at the error level for errors and exceptions.
312
+ * @param {StringLike | Error} msg - The message to be logged or an Error object.
313
+ * @param {Error} [e] - Optional error to include in the log.
263
314
  * @return {void}
264
315
  */
265
316
  error(msg, e) {
266
317
  this.log(LogLevel.error, msg, e);
267
318
  }
268
319
  /**
269
- * @description Logs a message at the error level
270
- * @summary Logs a message at the error level for errors and exceptions
271
- * @param {StringLike} msg - The message to be logged or an Error object
320
+ * @description Logs a message at the warning level.
321
+ * @summary Logs a message at the warning level for potential issues.
322
+ * @param {StringLike} msg - The message to be logged.
272
323
  * @return {void}
273
324
  */
274
325
  warn(msg) {
275
326
  this.log(LogLevel.warn, msg);
276
327
  }
277
328
  /**
278
- * @description Logs a message at the error level
279
- * @summary Logs a message at the error level for errors and exceptions
280
- * @param {StringLike} msg - The message to be logged or an Error object
329
+ * @description Logs a message at the trace level.
330
+ * @summary Logs a message at the trace level for tracing code execution.
331
+ * @param {StringLike} msg - The message to be logged.
281
332
  * @return {void}
282
333
  */
283
334
  trace(msg) {
284
335
  this.log(LogLevel.trace, msg);
285
336
  }
286
337
  /**
287
- * @description Updates the logger configuration
288
- * @summary Merges the provided configuration with the existing configuration
289
- * @param {Partial<LoggingConfig>} config - The configuration options to apply
338
+ * @description Updates the logger configuration.
339
+ * @summary Merges the provided configuration with the existing configuration.
340
+ * @param {Partial<LoggingConfig>} config - The configuration options to apply.
290
341
  * @return {void}
291
342
  */
292
343
  setConfig(config) {
293
344
  this.conf = { ...(this.conf || {}), ...config };
294
345
  }
346
+ get root() {
347
+ return [...this.baseContext];
348
+ }
349
+ /**
350
+ * @description Clears any contextual overrides applied by `for`.
351
+ * @summary Returns the same logger instance so more contexts can be chained afterwards.
352
+ * @return {this} The same logger instance.
353
+ */
354
+ clear() {
355
+ this.context = [...this.baseContext];
356
+ return this;
357
+ }
295
358
  }
296
359
  /**
297
- * @description A static class for managing logging operations
298
- * @summary The Logging class provides a centralized logging mechanism with support for
299
- * different log levels, verbosity, and styling. It uses a singleton pattern to maintain a global
300
- * logger instance and allows creating specific loggers for different classes and methods.
360
+ * @description A static class for managing logging operations.
361
+ * @summary The Logging class provides a centralized logging mechanism with support for different log levels, verbosity, and styling. It uses a singleton pattern to maintain a global logger instance and allows creating specific loggers for different classes and methods.
301
362
  * @class Logging
302
363
  * @example
303
364
  * // Set global configuration
@@ -360,27 +421,31 @@ export class MiniLogger {
360
421
  */
361
422
  export class Logging {
362
423
  /**
363
- * @description Factory function for creating logger instances
424
+ * @description Factory function for creating logger instances.
364
425
  * @summary A function that creates new Logger instances. By default, it creates a MiniLogger.
365
426
  */
366
427
  static { this._factory = (object, config) => {
367
- return new MiniLogger(object, config);
428
+ const base = typeof LoggedEnvironment.app === "string"
429
+ ? [LoggedEnvironment.app]
430
+ : [];
431
+ return new MiniLogger(object, config, base);
368
432
  }; }
369
433
  static { this._config = LoggedEnvironment; }
370
434
  constructor() { }
371
435
  /**
372
- * @description Sets the factory function for creating logger instances
373
- * @summary Allows customizing how logger instances are created
374
- * @param {LoggerFactory} factory - The factory function to use for creating loggers
436
+ * @description Sets the factory function for creating logger instances.
437
+ * @summary Allows customizing how logger instances are created.
438
+ * @param {LoggerFactory} factory - The factory function to use for creating loggers.
375
439
  * @return {void}
376
440
  */
377
441
  static setFactory(factory) {
378
442
  Logging._factory = factory;
443
+ this.global = undefined;
379
444
  }
380
445
  /**
381
- * @description Updates the global logging configuration
382
- * @summary Allows updating the global logging configuration with new settings
383
- * @param {Partial<LoggingConfig>} config - The configuration options to apply
446
+ * @description Updates the global logging configuration.
447
+ * @summary Allows updating the global logging configuration with new settings.
448
+ * @param {Partial<LoggingConfig>} config - The configuration options to apply.
384
449
  * @return {void}
385
450
  */
386
451
  static setConfig(config) {
@@ -389,9 +454,9 @@ export class Logging {
389
454
  });
390
455
  }
391
456
  /**
392
- * @description Gets a copy of the current global logging configuration
393
- * @summary Returns a copy of the current global logging configuration
394
- * @return {LoggingConfig} A copy of the current configuration
457
+ * @description Gets a copy of the current global logging configuration.
458
+ * @summary Returns a copy of the current global logging configuration.
459
+ * @return {LoggingConfig} A copy of the current configuration.
395
460
  */
396
461
  static getConfig() {
397
462
  return this._config;
@@ -399,19 +464,17 @@ export class Logging {
399
464
  /**
400
465
  * @description Retrieves or creates the global logger instance.
401
466
  * @summary Returns the existing global logger or creates a new one if it doesn't exist.
402
- *
403
- * @return The global VerbosityLogger instance.
467
+ * @return {Logger} The global Logger instance.
404
468
  */
405
469
  static get() {
406
- this.global = this.global ? this.global : this._factory("Logging");
407
- return this.global;
470
+ return this.ensureRoot();
408
471
  }
409
472
  /**
410
473
  * @description Logs a verbose message.
411
474
  * @summary Delegates the verbose logging to the global logger instance.
412
- *
413
- * @param msg - The message to be logged.
414
- * @param verbosity - The verbosity level of the message (default: 0).
475
+ * @param {StringLike} msg - The message to be logged.
476
+ * @param {number} [verbosity=0] - The verbosity level of the message.
477
+ * @return {void}
415
478
  */
416
479
  static verbose(msg, verbosity = 0) {
417
480
  return this.get().verbose(msg, verbosity);
@@ -419,17 +482,17 @@ export class Logging {
419
482
  /**
420
483
  * @description Logs an info message.
421
484
  * @summary Delegates the info logging to the global logger instance.
422
- *
423
- * @param msg - The message to be logged.
485
+ * @param {StringLike} msg - The message to be logged.
486
+ * @return {void}
424
487
  */
425
488
  static info(msg) {
426
489
  return this.get().info(msg);
427
490
  }
428
491
  /**
429
- * @description Logs an info message.
430
- * @summary Delegates the info logging to the global logger instance.
431
- *
432
- * @param msg - The message to be logged.
492
+ * @description Logs a trace message.
493
+ * @summary Delegates the trace logging to the global logger instance.
494
+ * @param {StringLike} msg - The message to be logged.
495
+ * @return {void}
433
496
  */
434
497
  static trace(msg) {
435
498
  return this.get().trace(msg);
@@ -437,8 +500,8 @@ export class Logging {
437
500
  /**
438
501
  * @description Logs a debug message.
439
502
  * @summary Delegates the debug logging to the global logger instance.
440
- *
441
- * @param msg - The message to be logged.
503
+ * @param {StringLike} msg - The message to be logged.
504
+ * @return {void}
442
505
  */
443
506
  static debug(msg) {
444
507
  return this.get().debug(msg);
@@ -446,26 +509,26 @@ export class Logging {
446
509
  /**
447
510
  * @description Logs a benchmark message.
448
511
  * @summary Delegates the benchmark logging to the global logger instance.
449
- *
450
- * @param msg - The message to be logged.
512
+ * @param {StringLike} msg - The message to be logged.
513
+ * @return {void}
451
514
  */
452
515
  static benchmark(msg) {
453
516
  return this.get().benchmark(msg);
454
517
  }
455
518
  /**
456
519
  * @description Logs a silly message.
457
- * @summary Delegates the debug logging to the global logger instance.
458
- *
459
- * @param msg - The message to be logged.
520
+ * @summary Delegates the silly logging to the global logger instance.
521
+ * @param {StringLike} msg - The message to be logged.
522
+ * @return {void}
460
523
  */
461
524
  static silly(msg) {
462
525
  return this.get().silly(msg);
463
526
  }
464
527
  /**
465
- * @description Logs a silly message.
466
- * @summary Delegates the debug logging to the global logger instance.
467
- *
468
- * @param msg - The message to be logged.
528
+ * @description Logs a warning message.
529
+ * @summary Delegates the warning logging to the global logger instance.
530
+ * @param {StringLike} msg - The message to be logged.
531
+ * @return {void}
469
532
  */
470
533
  static warn(msg) {
471
534
  return this.get().warn(msg);
@@ -473,49 +536,71 @@ export class Logging {
473
536
  /**
474
537
  * @description Logs an error message.
475
538
  * @summary Delegates the error logging to the global logger instance.
476
- *
477
- * @param msg - The message to be logged.
478
- * @param e
539
+ * @param {StringLike | Error} msg - The message to be logged.
540
+ * @param {Error} [e] - Optional error to include in the log.
541
+ * @return {void}
479
542
  */
480
543
  static error(msg, e) {
481
544
  return this.get().error(msg, e);
482
545
  }
483
546
  /**
484
- * @description Creates a logger for a specific object or context
485
- * @summary Creates a new logger instance for the given object or context using the factory function
486
- * @param {LoggingContext} object - The object, class, or context to create a logger for
487
- * @param {Partial<LoggingConfig>} [config] - Optional configuration to override global settings
488
- * @param {...any} args - Additional arguments to pass to the logger factory
489
- * @return {Logger} A new logger instance for the specified object or context
547
+ * @description Creates a logger for a specific object or context.
548
+ * @summary Creates a new logger instance for the given object or context using the factory function.
549
+ * @param {LoggingContext} object - The object, class, or context to create a logger for.
550
+ * @param {Partial<LoggingConfig>} [config] - Optional configuration to override global settings.
551
+ * @param {...any} args - Additional arguments to pass to the logger factory.
552
+ * @return {Logger} A new logger instance for the specified object or context.
490
553
  */
491
554
  static for(object, config, ...args) {
492
- object =
493
- typeof object === "string"
494
- ? object
495
- : object.constructor
496
- ? object.constructor.name
497
- : object.name;
498
- return this._factory(object, config, ...args);
555
+ const root = this.global ? this.global : this.ensureRoot(args);
556
+ const callArgs = config !== undefined ? [object, config] : [object];
557
+ return root.for(...callArgs);
499
558
  }
500
559
  /**
501
- * @description Creates a logger for a specific reason or correlation context
502
- * @summary Utility to quickly create a logger labeled with a free-form reason and optional identifier
503
- * so that ad-hoc operations can be traced without tying the logger to a class or method name.
504
- * @param {string} reason - A textual reason or context label for this logger instance
505
- * @param {string} [id] - Optional identifier to help correlate related log entries
506
- * @return {Logger} A new logger instance labeled with the provided reason and id
560
+ * @description Creates a logger for a specific reason or correlation context.
561
+ * @summary Utility to quickly create a logger labeled with a free-form reason and optional identifier so that ad-hoc operations can be traced without tying the logger to a class or method name.
562
+ * @param {string} reason - A textual reason or context label for this logger instance.
563
+ * @param {string} [id] - Optional identifier to help correlate related log entries.
564
+ * @return {Logger} A new logger instance labeled with the provided reason and id.
507
565
  */
508
566
  static because(reason, id) {
509
- return this._factory(reason, this._config, id);
567
+ const root = this.ensureRoot();
568
+ let logger = root.for(reason, this._config);
569
+ if (id)
570
+ logger = logger.for(id);
571
+ return logger;
572
+ }
573
+ static baseContext() {
574
+ const app = this._config.app;
575
+ return typeof app === "string" && app.length ? [app] : [];
576
+ }
577
+ static attachRootContext(logger) {
578
+ const base = logger.root && Array.isArray(logger.root)
579
+ ? [...logger.root]
580
+ : this.baseContext();
581
+ if (!logger.context ||
582
+ (Array.isArray(logger.context) &&
583
+ logger.context.length === 0)) {
584
+ logger.context = [...base];
585
+ }
586
+ logger[ROOT_CONTEXT_SYMBOL] = [...base];
587
+ return logger;
588
+ }
589
+ static ensureRoot(extras = []) {
590
+ if (!this.global) {
591
+ const instance = this._factory(undefined, undefined, ...extras);
592
+ this.global = this.attachRootContext(instance);
593
+ }
594
+ return this.global;
510
595
  }
511
596
  /**
512
- * @description Applies theme styling to text
513
- * @summary Applies styling (colors, formatting) to text based on the theme configuration
514
- * @param {string} text - The text to style
515
- * @param {string} type - The type of element to style (e.g., "class", "message", "logLevel")
516
- * @param {LogLevel} loggerLevel - The log level to use for styling
517
- * @param {Theme} [template=DefaultTheme] - The theme to use for styling
518
- * @return {string} The styled text
597
+ * @description Applies theme styling to text.
598
+ * @summary Applies styling (colors, formatting) to text based on the theme configuration.
599
+ * @param {string} text - The text to style.
600
+ * @param type - The type of element to style (e.g., "class", "message", "logLevel").
601
+ * @param {LogLevel} loggerLevel - The log level to use for styling.
602
+ * @param {Theme} [template=DefaultTheme] - The theme to use for styling.
603
+ * @return {string} The styled text.
519
604
  * @mermaid
520
605
  * sequenceDiagram
521
606
  * participant Caller
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"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"}