@hkdigital/lib-core 0.4.33 → 0.4.34
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.
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @typedef {import('../../typedef.js').LogLevel} LogLevel */
|
|
1
2
|
/**
|
|
2
3
|
* Logger class for consistent logging
|
|
3
4
|
* @extends EventEmitter
|
|
@@ -7,19 +8,19 @@ export default class Logger extends EventEmitter {
|
|
|
7
8
|
* Create a new Logger instance
|
|
8
9
|
*
|
|
9
10
|
* @param {string} name - Name of the service/component for this logger
|
|
10
|
-
* @param {
|
|
11
|
+
* @param {LogLevel} [defaultLevel=INFO] - Initial log level threshold
|
|
11
12
|
* @param {Object} [context={}] - Default context data for all logs
|
|
12
13
|
*/
|
|
13
|
-
constructor(name: string, defaultLevel?:
|
|
14
|
+
constructor(name: string, defaultLevel?: LogLevel, context?: Object);
|
|
14
15
|
name: string;
|
|
15
|
-
level:
|
|
16
|
+
level: import("../../typedef.js").LogLevel;
|
|
16
17
|
/**
|
|
17
18
|
* Set the minimum log level threshold
|
|
18
19
|
*
|
|
19
|
-
* @param {
|
|
20
|
+
* @param {LogLevel} level - New log level (DEBUG, INFO, WARN, ERROR or NONE)
|
|
20
21
|
* @returns {boolean} True if level was valid and set, false otherwise
|
|
21
22
|
*/
|
|
22
|
-
setLevel(level:
|
|
23
|
+
setLevel(level: LogLevel): boolean;
|
|
23
24
|
/**
|
|
24
25
|
* Log a debug message
|
|
25
26
|
*
|
|
@@ -77,11 +78,11 @@ export default class Logger extends EventEmitter {
|
|
|
77
78
|
* E.g. an event that was created by another Logger instance and should be
|
|
78
79
|
* forwarded to this logger.
|
|
79
80
|
*
|
|
80
|
-
* @param {string} eventName
|
|
81
81
|
* @param {import('../../typedef.js').LogEventData} eventData
|
|
82
82
|
*/
|
|
83
|
-
logFromEvent(
|
|
83
|
+
logFromEvent(eventData: import("../../typedef.js").LogEventData): false | undefined;
|
|
84
84
|
#private;
|
|
85
85
|
}
|
|
86
86
|
export type ErrorDetails = import("../../../generic/typedef.js").ErrorDetails;
|
|
87
|
+
export type LogLevel = import("../../typedef.js").LogLevel;
|
|
87
88
|
import { EventEmitter } from '../../../generic/events.js';
|
|
@@ -59,6 +59,8 @@ import { exportNotNullish } from '../../../util/object.js';
|
|
|
59
59
|
import * as is from '../../../util/is.js';
|
|
60
60
|
import { HttpError } from '../../../network/errors.js';
|
|
61
61
|
|
|
62
|
+
/** @typedef {import('../../typedef.js').LogLevel} LogLevel */
|
|
63
|
+
|
|
62
64
|
/**
|
|
63
65
|
* Logger class for consistent logging
|
|
64
66
|
* @extends EventEmitter
|
|
@@ -71,7 +73,7 @@ export default class Logger extends EventEmitter {
|
|
|
71
73
|
* Create a new Logger instance
|
|
72
74
|
*
|
|
73
75
|
* @param {string} name - Name of the service/component for this logger
|
|
74
|
-
* @param {
|
|
76
|
+
* @param {LogLevel} [defaultLevel=INFO] - Initial log level threshold
|
|
75
77
|
* @param {Object} [context={}] - Default context data for all logs
|
|
76
78
|
*/
|
|
77
79
|
constructor(name, defaultLevel = INFO, context = {}) {
|
|
@@ -86,7 +88,7 @@ export default class Logger extends EventEmitter {
|
|
|
86
88
|
/**
|
|
87
89
|
* Set the minimum log level threshold
|
|
88
90
|
*
|
|
89
|
-
* @param {
|
|
91
|
+
* @param {LogLevel} level - New log level (DEBUG, INFO, WARN, ERROR or NONE)
|
|
90
92
|
* @returns {boolean} True if level was valid and set, false otherwise
|
|
91
93
|
*/
|
|
92
94
|
setLevel(level) {
|
|
@@ -239,10 +241,9 @@ export default class Logger extends EventEmitter {
|
|
|
239
241
|
* E.g. an event that was created by another Logger instance and should be
|
|
240
242
|
* forwarded to this logger.
|
|
241
243
|
*
|
|
242
|
-
* @param {string} eventName
|
|
243
244
|
* @param {import('../../typedef.js').LogEventData} eventData
|
|
244
245
|
*/
|
|
245
|
-
logFromEvent(
|
|
246
|
+
logFromEvent(eventData) {
|
|
246
247
|
const level = eventData.level;
|
|
247
248
|
|
|
248
249
|
// Check if this log level should be filtered
|
|
@@ -250,13 +251,13 @@ export default class Logger extends EventEmitter {
|
|
|
250
251
|
return false; // Below threshold, don't emit
|
|
251
252
|
}
|
|
252
253
|
|
|
253
|
-
this.#logEvent(
|
|
254
|
+
this.#logEvent(eventData);
|
|
254
255
|
}
|
|
255
256
|
|
|
256
257
|
/**
|
|
257
258
|
* Internal logging method
|
|
258
259
|
*
|
|
259
|
-
* @param {
|
|
260
|
+
* @param {LogLevel} level - Log level
|
|
260
261
|
* @param {string} message - Log message
|
|
261
262
|
* @param {*} [details] - Additional details to include in the log
|
|
262
263
|
* @returns {boolean} True if the log was emitted, false if filtered
|
|
@@ -355,8 +356,10 @@ export default class Logger extends EventEmitter {
|
|
|
355
356
|
if (reason instanceof Error) {
|
|
356
357
|
return reason;
|
|
357
358
|
}
|
|
359
|
+
// @ts-ignore
|
|
358
360
|
else if ( is.object(reason) && reason?.message ) {
|
|
359
361
|
// reason is an object with message property
|
|
362
|
+
// @ts-ignore
|
|
360
363
|
return new DetailedError(reason?.message, reason);
|
|
361
364
|
}
|
|
362
365
|
else if ( typeof reason === "string" ) {
|
package/dist/services/README.md
CHANGED
|
@@ -302,8 +302,8 @@ const manager = new ServiceManager();
|
|
|
302
302
|
const logger = createServerLogger('SystemLogger');
|
|
303
303
|
|
|
304
304
|
// Listen to all log events and forward them to the logger
|
|
305
|
-
const unsubscribe = manager.
|
|
306
|
-
logger.logFromEvent(
|
|
305
|
+
const unsubscribe = manager.onLogEvent((logEvent) => {
|
|
306
|
+
logger.logFromEvent(logEvent);
|
|
307
307
|
});
|
|
308
308
|
|
|
309
309
|
// Register services
|