@rabbit-company/logger 2.1.1 → 3.0.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/module/logger.d.ts +26 -32
- package/module/logger.js +133 -245
- package/package.json +12 -11
- package/src/logger.d.ts +0 -100
- package/src/logger.js +0 -210
package/module/logger.d.ts
CHANGED
|
@@ -1,100 +1,94 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Represents a logger utility for logging messages with different log levels.
|
|
3
|
-
|
|
3
|
+
*/
|
|
4
4
|
export default class Logger {
|
|
5
|
-
static
|
|
5
|
+
private static NDJsonData;
|
|
6
6
|
/**
|
|
7
7
|
* Indicates whether NDJson is enabled.
|
|
8
8
|
* @type {boolean}
|
|
9
|
-
|
|
9
|
+
*/
|
|
10
10
|
static NDJson: boolean;
|
|
11
11
|
/**
|
|
12
12
|
* The log level of the logger.
|
|
13
13
|
* @type {number}
|
|
14
|
-
|
|
14
|
+
*/
|
|
15
15
|
static level: number;
|
|
16
16
|
/**
|
|
17
17
|
* Indicates whether colors are enabled for log messages.
|
|
18
18
|
* @type {boolean}
|
|
19
|
-
|
|
19
|
+
*/
|
|
20
20
|
static colors: boolean;
|
|
21
21
|
/**
|
|
22
22
|
* Defines log levels and their associated numeric values.
|
|
23
|
-
* @type {
|
|
24
|
-
|
|
25
|
-
static levels:
|
|
26
|
-
static
|
|
27
|
-
0: string;
|
|
28
|
-
1: string;
|
|
29
|
-
2: string;
|
|
30
|
-
3: string;
|
|
31
|
-
4: string;
|
|
32
|
-
5: string;
|
|
33
|
-
6: string;
|
|
34
|
-
};
|
|
23
|
+
* @type {Record<string, number>}
|
|
24
|
+
*/
|
|
25
|
+
static readonly levels: Record<string, number>;
|
|
26
|
+
private static readonly levelsRev;
|
|
35
27
|
/**
|
|
36
28
|
* Parses the log message to ensure it is a string.
|
|
37
29
|
* @param {*} message - The log message.
|
|
38
30
|
* @returns {string | null} - The parsed log message or null if the message is undefined.
|
|
39
|
-
|
|
31
|
+
*/
|
|
40
32
|
static parseMessage(message: any): string | null;
|
|
41
33
|
/**
|
|
42
34
|
* Formats the log message with timestamp and log level.
|
|
43
35
|
* @param {string} message - The log message.
|
|
44
36
|
* @param {number} logLevel - The log level.
|
|
45
37
|
* @returns {string} - The formatted log message.
|
|
46
|
-
|
|
38
|
+
*/
|
|
47
39
|
static formatMessage(message: string, logLevel: number): string;
|
|
48
40
|
/**
|
|
49
41
|
* Processes and logs a message with the specified log level.
|
|
50
42
|
* @param {*} message - The log message.
|
|
51
|
-
* @param {number}
|
|
52
|
-
|
|
53
|
-
static
|
|
43
|
+
* @param {number} logLevel - The log level.
|
|
44
|
+
*/
|
|
45
|
+
private static processMessage;
|
|
54
46
|
/**
|
|
55
47
|
* Logs an error message.
|
|
56
48
|
* @param {*} message - The error message.
|
|
57
|
-
|
|
49
|
+
*/
|
|
58
50
|
static error(message: any): void;
|
|
59
51
|
/**
|
|
60
52
|
* Logs a warning message.
|
|
61
53
|
* @param {*} message - The warning message.
|
|
62
|
-
|
|
54
|
+
*/
|
|
63
55
|
static warn(message: any): void;
|
|
64
56
|
/**
|
|
65
57
|
* Logs an informational message.
|
|
66
58
|
* @param {*} message - The informational message.
|
|
67
|
-
|
|
59
|
+
*/
|
|
68
60
|
static info(message: any): void;
|
|
69
61
|
/**
|
|
70
62
|
* Logs an HTTP-related message.
|
|
71
63
|
* @param {*} message - The HTTP-related message.
|
|
72
|
-
|
|
64
|
+
*/
|
|
73
65
|
static http(message: any): void;
|
|
74
66
|
/**
|
|
75
67
|
* Logs a verbose message.
|
|
76
68
|
* @param {*} message - The verbose message.
|
|
77
|
-
|
|
69
|
+
*/
|
|
78
70
|
static verbose(message: any): void;
|
|
79
71
|
/**
|
|
80
72
|
* Logs a debug message.
|
|
81
73
|
* @param {*} message - The debug message.
|
|
82
|
-
|
|
74
|
+
*/
|
|
83
75
|
static debug(message: any): void;
|
|
84
76
|
/**
|
|
85
77
|
* Logs a silly message.
|
|
86
78
|
* @param {*} message - The silly message.
|
|
87
|
-
|
|
79
|
+
*/
|
|
88
80
|
static silly(message: any): void;
|
|
89
81
|
/**
|
|
90
82
|
* Appends a message to NDJson format.
|
|
91
83
|
* @param {string} message - The message to append.
|
|
92
84
|
* @param {number} logLevel - The log level associated with the message.
|
|
93
|
-
|
|
85
|
+
*/
|
|
94
86
|
static putNDJson(message: string, logLevel: number): void;
|
|
95
87
|
/**
|
|
96
88
|
* Gets the NDJson log.
|
|
97
89
|
* @returns {string} - The NDJson log.
|
|
98
|
-
|
|
90
|
+
*/
|
|
99
91
|
static getNDJson(): string;
|
|
100
|
-
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export {};
|
package/module/logger.js
CHANGED
|
@@ -1,103 +1,6 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
-
var __publicField = (obj, key, value) => {
|
|
4
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
-
return value;
|
|
6
|
-
};
|
|
7
|
-
var __accessCheck = (obj, member, msg) => {
|
|
8
|
-
if (!member.has(obj))
|
|
9
|
-
throw TypeError("Cannot " + msg);
|
|
10
|
-
};
|
|
11
|
-
var __privateGet = (obj, member, getter) => {
|
|
12
|
-
__accessCheck(obj, member, "read from private field");
|
|
13
|
-
return getter ? getter.call(obj) : member.get(obj);
|
|
14
|
-
};
|
|
15
|
-
var __privateAdd = (obj, member, value) => {
|
|
16
|
-
if (member.has(obj))
|
|
17
|
-
throw TypeError("Cannot add the same private member more than once");
|
|
18
|
-
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
19
|
-
};
|
|
20
|
-
var __privateSet = (obj, member, value, setter) => {
|
|
21
|
-
__accessCheck(obj, member, "write to private field");
|
|
22
|
-
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
23
|
-
return value;
|
|
24
|
-
};
|
|
25
|
-
var __privateMethod = (obj, member, method) => {
|
|
26
|
-
__accessCheck(obj, member, "access private method");
|
|
27
|
-
return method;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
1
|
// node_modules/chalk/source/vendor/ansi-styles/index.js
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
|
|
34
|
-
var wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
|
|
35
|
-
var styles = {
|
|
36
|
-
modifier: {
|
|
37
|
-
reset: [0, 0],
|
|
38
|
-
// 21 isn't widely supported and 22 does the same thing
|
|
39
|
-
bold: [1, 22],
|
|
40
|
-
dim: [2, 22],
|
|
41
|
-
italic: [3, 23],
|
|
42
|
-
underline: [4, 24],
|
|
43
|
-
overline: [53, 55],
|
|
44
|
-
inverse: [7, 27],
|
|
45
|
-
hidden: [8, 28],
|
|
46
|
-
strikethrough: [9, 29]
|
|
47
|
-
},
|
|
48
|
-
color: {
|
|
49
|
-
black: [30, 39],
|
|
50
|
-
red: [31, 39],
|
|
51
|
-
green: [32, 39],
|
|
52
|
-
yellow: [33, 39],
|
|
53
|
-
blue: [34, 39],
|
|
54
|
-
magenta: [35, 39],
|
|
55
|
-
cyan: [36, 39],
|
|
56
|
-
white: [37, 39],
|
|
57
|
-
// Bright color
|
|
58
|
-
blackBright: [90, 39],
|
|
59
|
-
gray: [90, 39],
|
|
60
|
-
// Alias of `blackBright`
|
|
61
|
-
grey: [90, 39],
|
|
62
|
-
// Alias of `blackBright`
|
|
63
|
-
redBright: [91, 39],
|
|
64
|
-
greenBright: [92, 39],
|
|
65
|
-
yellowBright: [93, 39],
|
|
66
|
-
blueBright: [94, 39],
|
|
67
|
-
magentaBright: [95, 39],
|
|
68
|
-
cyanBright: [96, 39],
|
|
69
|
-
whiteBright: [97, 39]
|
|
70
|
-
},
|
|
71
|
-
bgColor: {
|
|
72
|
-
bgBlack: [40, 49],
|
|
73
|
-
bgRed: [41, 49],
|
|
74
|
-
bgGreen: [42, 49],
|
|
75
|
-
bgYellow: [43, 49],
|
|
76
|
-
bgBlue: [44, 49],
|
|
77
|
-
bgMagenta: [45, 49],
|
|
78
|
-
bgCyan: [46, 49],
|
|
79
|
-
bgWhite: [47, 49],
|
|
80
|
-
// Bright color
|
|
81
|
-
bgBlackBright: [100, 49],
|
|
82
|
-
bgGray: [100, 49],
|
|
83
|
-
// Alias of `bgBlackBright`
|
|
84
|
-
bgGrey: [100, 49],
|
|
85
|
-
// Alias of `bgBlackBright`
|
|
86
|
-
bgRedBright: [101, 49],
|
|
87
|
-
bgGreenBright: [102, 49],
|
|
88
|
-
bgYellowBright: [103, 49],
|
|
89
|
-
bgBlueBright: [104, 49],
|
|
90
|
-
bgMagentaBright: [105, 49],
|
|
91
|
-
bgCyanBright: [106, 49],
|
|
92
|
-
bgWhiteBright: [107, 49]
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
var modifierNames = Object.keys(styles.modifier);
|
|
96
|
-
var foregroundColorNames = Object.keys(styles.color);
|
|
97
|
-
var backgroundColorNames = Object.keys(styles.bgColor);
|
|
98
|
-
var colorNames = [...foregroundColorNames, ...backgroundColorNames];
|
|
99
|
-
function assembleStyles() {
|
|
100
|
-
const codes = /* @__PURE__ */ new Map();
|
|
2
|
+
var assembleStyles = function() {
|
|
3
|
+
const codes = new Map;
|
|
101
4
|
for (const [groupName, group] of Object.entries(styles)) {
|
|
102
5
|
for (const [styleName, style] of Object.entries(group)) {
|
|
103
6
|
styles[styleName] = {
|
|
@@ -152,11 +55,9 @@ function assembleStyles() {
|
|
|
152
55
|
}
|
|
153
56
|
const integer = Number.parseInt(colorString, 16);
|
|
154
57
|
return [
|
|
155
|
-
/* eslint-disable no-bitwise */
|
|
156
58
|
integer >> 16 & 255,
|
|
157
59
|
integer >> 8 & 255,
|
|
158
60
|
integer & 255
|
|
159
|
-
/* eslint-enable no-bitwise */
|
|
160
61
|
];
|
|
161
62
|
},
|
|
162
63
|
enumerable: false
|
|
@@ -209,7 +110,68 @@ function assembleStyles() {
|
|
|
209
110
|
}
|
|
210
111
|
});
|
|
211
112
|
return styles;
|
|
212
|
-
}
|
|
113
|
+
};
|
|
114
|
+
var ANSI_BACKGROUND_OFFSET = 10;
|
|
115
|
+
var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
|
|
116
|
+
var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
|
|
117
|
+
var wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
|
|
118
|
+
var styles = {
|
|
119
|
+
modifier: {
|
|
120
|
+
reset: [0, 0],
|
|
121
|
+
bold: [1, 22],
|
|
122
|
+
dim: [2, 22],
|
|
123
|
+
italic: [3, 23],
|
|
124
|
+
underline: [4, 24],
|
|
125
|
+
overline: [53, 55],
|
|
126
|
+
inverse: [7, 27],
|
|
127
|
+
hidden: [8, 28],
|
|
128
|
+
strikethrough: [9, 29]
|
|
129
|
+
},
|
|
130
|
+
color: {
|
|
131
|
+
black: [30, 39],
|
|
132
|
+
red: [31, 39],
|
|
133
|
+
green: [32, 39],
|
|
134
|
+
yellow: [33, 39],
|
|
135
|
+
blue: [34, 39],
|
|
136
|
+
magenta: [35, 39],
|
|
137
|
+
cyan: [36, 39],
|
|
138
|
+
white: [37, 39],
|
|
139
|
+
blackBright: [90, 39],
|
|
140
|
+
gray: [90, 39],
|
|
141
|
+
grey: [90, 39],
|
|
142
|
+
redBright: [91, 39],
|
|
143
|
+
greenBright: [92, 39],
|
|
144
|
+
yellowBright: [93, 39],
|
|
145
|
+
blueBright: [94, 39],
|
|
146
|
+
magentaBright: [95, 39],
|
|
147
|
+
cyanBright: [96, 39],
|
|
148
|
+
whiteBright: [97, 39]
|
|
149
|
+
},
|
|
150
|
+
bgColor: {
|
|
151
|
+
bgBlack: [40, 49],
|
|
152
|
+
bgRed: [41, 49],
|
|
153
|
+
bgGreen: [42, 49],
|
|
154
|
+
bgYellow: [43, 49],
|
|
155
|
+
bgBlue: [44, 49],
|
|
156
|
+
bgMagenta: [45, 49],
|
|
157
|
+
bgCyan: [46, 49],
|
|
158
|
+
bgWhite: [47, 49],
|
|
159
|
+
bgBlackBright: [100, 49],
|
|
160
|
+
bgGray: [100, 49],
|
|
161
|
+
bgGrey: [100, 49],
|
|
162
|
+
bgRedBright: [101, 49],
|
|
163
|
+
bgGreenBright: [102, 49],
|
|
164
|
+
bgYellowBright: [103, 49],
|
|
165
|
+
bgBlueBright: [104, 49],
|
|
166
|
+
bgMagentaBright: [105, 49],
|
|
167
|
+
bgCyanBright: [106, 49],
|
|
168
|
+
bgWhiteBright: [107, 49]
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
var modifierNames = Object.keys(styles.modifier);
|
|
172
|
+
var foregroundColorNames = Object.keys(styles.color);
|
|
173
|
+
var backgroundColorNames = Object.keys(styles.bgColor);
|
|
174
|
+
var colorNames = [...foregroundColorNames, ...backgroundColorNames];
|
|
213
175
|
var ansiStyles = assembleStyles();
|
|
214
176
|
var ansi_styles_default = ansiStyles;
|
|
215
177
|
|
|
@@ -269,6 +231,9 @@ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
|
|
|
269
231
|
}
|
|
270
232
|
|
|
271
233
|
// node_modules/chalk/source/index.js
|
|
234
|
+
var createChalk = function(options) {
|
|
235
|
+
return chalkFactory(options);
|
|
236
|
+
};
|
|
272
237
|
var { stdout: stdoutColor, stderr: stderrColor } = browser_default;
|
|
273
238
|
var GENERATOR = Symbol("GENERATOR");
|
|
274
239
|
var STYLER = Symbol("STYLER");
|
|
@@ -279,23 +244,20 @@ var levelMapping = [
|
|
|
279
244
|
"ansi256",
|
|
280
245
|
"ansi16m"
|
|
281
246
|
];
|
|
282
|
-
var styles2 =
|
|
247
|
+
var styles2 = Object.create(null);
|
|
283
248
|
var applyOptions = (object, options = {}) => {
|
|
284
249
|
if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
|
|
285
250
|
throw new Error("The `level` option should be an integer from 0 to 3");
|
|
286
251
|
}
|
|
287
252
|
const colorLevel = stdoutColor ? stdoutColor.level : 0;
|
|
288
|
-
object.level = options.level ===
|
|
253
|
+
object.level = options.level === undefined ? colorLevel : options.level;
|
|
289
254
|
};
|
|
290
255
|
var chalkFactory = (options) => {
|
|
291
|
-
const
|
|
292
|
-
applyOptions(
|
|
293
|
-
Object.setPrototypeOf(
|
|
294
|
-
return
|
|
256
|
+
const chalk = (...strings) => strings.join(" ");
|
|
257
|
+
applyOptions(chalk, options);
|
|
258
|
+
Object.setPrototypeOf(chalk, createChalk.prototype);
|
|
259
|
+
return chalk;
|
|
295
260
|
};
|
|
296
|
-
function createChalk(options) {
|
|
297
|
-
return chalkFactory(options);
|
|
298
|
-
}
|
|
299
261
|
Object.setPrototypeOf(createChalk.prototype, Function.prototype);
|
|
300
262
|
for (const [styleName, style] of Object.entries(ansi_styles_default)) {
|
|
301
263
|
styles2[styleName] = {
|
|
@@ -366,7 +328,7 @@ var proto = Object.defineProperties(() => {
|
|
|
366
328
|
var createStyler = (open, close, parent) => {
|
|
367
329
|
let openAll;
|
|
368
330
|
let closeAll;
|
|
369
|
-
if (parent ===
|
|
331
|
+
if (parent === undefined) {
|
|
370
332
|
openAll = open;
|
|
371
333
|
closeAll = close;
|
|
372
334
|
} else {
|
|
@@ -394,12 +356,12 @@ var applyStyle = (self, string) => {
|
|
|
394
356
|
return self[IS_EMPTY] ? "" : string;
|
|
395
357
|
}
|
|
396
358
|
let styler = self[STYLER];
|
|
397
|
-
if (styler ===
|
|
359
|
+
if (styler === undefined) {
|
|
398
360
|
return string;
|
|
399
361
|
}
|
|
400
362
|
const { openAll, closeAll } = styler;
|
|
401
363
|
if (string.includes("\x1B")) {
|
|
402
|
-
while (styler !==
|
|
364
|
+
while (styler !== undefined) {
|
|
403
365
|
string = stringReplaceAll(string, styler.close, styler.open);
|
|
404
366
|
styler = styler.parent;
|
|
405
367
|
}
|
|
@@ -415,14 +377,30 @@ var chalk = createChalk();
|
|
|
415
377
|
var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
|
|
416
378
|
var source_default = chalk;
|
|
417
379
|
|
|
418
|
-
//
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
380
|
+
// src/logger.ts
|
|
381
|
+
class Logger {
|
|
382
|
+
static NDJsonData = "";
|
|
383
|
+
static NDJson = false;
|
|
384
|
+
static level = 2;
|
|
385
|
+
static colors = true;
|
|
386
|
+
static levels = {
|
|
387
|
+
error: 0,
|
|
388
|
+
warn: 1,
|
|
389
|
+
info: 2,
|
|
390
|
+
http: 3,
|
|
391
|
+
verbose: 4,
|
|
392
|
+
debug: 5,
|
|
393
|
+
silly: 6
|
|
394
|
+
};
|
|
395
|
+
static levelsRev = {
|
|
396
|
+
0: "ERROR",
|
|
397
|
+
1: "WARN",
|
|
398
|
+
2: "INFO",
|
|
399
|
+
3: "HTTP",
|
|
400
|
+
4: "VERBOSE",
|
|
401
|
+
5: "DEBUG",
|
|
402
|
+
6: "SILLY"
|
|
403
|
+
};
|
|
426
404
|
static parseMessage(message) {
|
|
427
405
|
if (typeof message === "undefined")
|
|
428
406
|
return null;
|
|
@@ -430,15 +408,9 @@ var Logger = class {
|
|
|
430
408
|
message = JSON.stringify(message);
|
|
431
409
|
return message;
|
|
432
410
|
}
|
|
433
|
-
/**
|
|
434
|
-
* Formats the log message with timestamp and log level.
|
|
435
|
-
* @param {string} message - The log message.
|
|
436
|
-
* @param {number} logLevel - The log level.
|
|
437
|
-
* @returns {string} - The formatted log message.
|
|
438
|
-
*/
|
|
439
411
|
static formatMessage(message, logLevel) {
|
|
440
|
-
let type =
|
|
441
|
-
let date =
|
|
412
|
+
let type = this.levelsRev[logLevel];
|
|
413
|
+
let date = new Date().toISOString().split(".")[0].replace("T", " ");
|
|
442
414
|
if (this.colors) {
|
|
443
415
|
date = source_default.gray(date);
|
|
444
416
|
switch (logLevel) {
|
|
@@ -474,139 +446,55 @@ var Logger = class {
|
|
|
474
446
|
}
|
|
475
447
|
return `[${date}] ${type} ${message}`;
|
|
476
448
|
}
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
449
|
+
static processMessage(message, logLevel) {
|
|
450
|
+
if (this.level < logLevel)
|
|
451
|
+
return;
|
|
452
|
+
message = this.parseMessage(message);
|
|
453
|
+
if (message === null)
|
|
454
|
+
return;
|
|
455
|
+
if (this.NDJson)
|
|
456
|
+
this.putNDJson(message, logLevel);
|
|
457
|
+
switch (logLevel) {
|
|
458
|
+
case 0:
|
|
459
|
+
console.error(this.formatMessage(message, logLevel));
|
|
460
|
+
break;
|
|
461
|
+
case 1:
|
|
462
|
+
console.warn(this.formatMessage(message, logLevel));
|
|
463
|
+
break;
|
|
464
|
+
default:
|
|
465
|
+
console.info(this.formatMessage(message, logLevel));
|
|
466
|
+
break;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
481
469
|
static error(message) {
|
|
482
|
-
|
|
470
|
+
this.processMessage(message, 0);
|
|
483
471
|
}
|
|
484
|
-
/**
|
|
485
|
-
* Logs a warning message.
|
|
486
|
-
* @param {*} message - The warning message.
|
|
487
|
-
*/
|
|
488
472
|
static warn(message) {
|
|
489
|
-
|
|
473
|
+
this.processMessage(message, 1);
|
|
490
474
|
}
|
|
491
|
-
/**
|
|
492
|
-
* Logs an informational message.
|
|
493
|
-
* @param {*} message - The informational message.
|
|
494
|
-
*/
|
|
495
475
|
static info(message) {
|
|
496
|
-
|
|
476
|
+
this.processMessage(message, 2);
|
|
497
477
|
}
|
|
498
|
-
/**
|
|
499
|
-
* Logs an HTTP-related message.
|
|
500
|
-
* @param {*} message - The HTTP-related message.
|
|
501
|
-
*/
|
|
502
478
|
static http(message) {
|
|
503
|
-
|
|
479
|
+
this.processMessage(message, 3);
|
|
504
480
|
}
|
|
505
|
-
/**
|
|
506
|
-
* Logs a verbose message.
|
|
507
|
-
* @param {*} message - The verbose message.
|
|
508
|
-
*/
|
|
509
481
|
static verbose(message) {
|
|
510
|
-
|
|
482
|
+
this.processMessage(message, 4);
|
|
511
483
|
}
|
|
512
|
-
/**
|
|
513
|
-
* Logs a debug message.
|
|
514
|
-
* @param {*} message - The debug message.
|
|
515
|
-
*/
|
|
516
484
|
static debug(message) {
|
|
517
|
-
|
|
485
|
+
this.processMessage(message, 5);
|
|
518
486
|
}
|
|
519
|
-
/**
|
|
520
|
-
* Logs a silly message.
|
|
521
|
-
* @param {*} message - The silly message.
|
|
522
|
-
*/
|
|
523
487
|
static silly(message) {
|
|
524
|
-
|
|
488
|
+
this.processMessage(message, 6);
|
|
525
489
|
}
|
|
526
|
-
/**
|
|
527
|
-
* Appends a message to NDJson format.
|
|
528
|
-
* @param {string} message - The message to append.
|
|
529
|
-
* @param {number} logLevel - The log level associated with the message.
|
|
530
|
-
*/
|
|
531
490
|
static putNDJson(message, logLevel) {
|
|
532
|
-
let separator =
|
|
533
|
-
|
|
491
|
+
let separator = this.NDJsonData.length !== 0 ? "\n" : "";
|
|
492
|
+
this.NDJsonData += separator + JSON.stringify({ time: new Date().toISOString(), level: logLevel, msg: message });
|
|
534
493
|
}
|
|
535
|
-
/**
|
|
536
|
-
* Gets the NDJson log.
|
|
537
|
-
* @returns {string} - The NDJson log.
|
|
538
|
-
*/
|
|
539
494
|
static getNDJson() {
|
|
540
|
-
return
|
|
541
|
-
}
|
|
542
|
-
};
|
|
543
|
-
_NDJson = new WeakMap();
|
|
544
|
-
_levels = new WeakMap();
|
|
545
|
-
_processMessage = new WeakSet();
|
|
546
|
-
processMessage_fn = function(message, level2) {
|
|
547
|
-
if (this.level < level2)
|
|
548
|
-
return;
|
|
549
|
-
message = this.parseMessage(message);
|
|
550
|
-
if (message === null)
|
|
551
|
-
return;
|
|
552
|
-
if (this.NDJson)
|
|
553
|
-
this.putNDJson(message, level2);
|
|
554
|
-
switch (level2) {
|
|
555
|
-
case 0:
|
|
556
|
-
console.error(this.formatMessage(message, level2));
|
|
557
|
-
break;
|
|
558
|
-
case 1:
|
|
559
|
-
console.warn(this.formatMessage(message, level2));
|
|
560
|
-
break;
|
|
561
|
-
default:
|
|
562
|
-
console.info(this.formatMessage(message, level2));
|
|
563
|
-
break;
|
|
495
|
+
return this.NDJsonData ?? "";
|
|
564
496
|
}
|
|
565
|
-
}
|
|
566
|
-
/**
|
|
567
|
-
* Processes and logs a message with the specified log level.
|
|
568
|
-
* @param {*} message - The log message.
|
|
569
|
-
* @param {number} level - The log level.
|
|
570
|
-
*/
|
|
571
|
-
__privateAdd(Logger, _processMessage);
|
|
572
|
-
__privateAdd(Logger, _NDJson, "");
|
|
573
|
-
/**
|
|
574
|
-
* Indicates whether NDJson is enabled.
|
|
575
|
-
* @type {boolean}
|
|
576
|
-
*/
|
|
577
|
-
__publicField(Logger, "NDJson", false);
|
|
578
|
-
/**
|
|
579
|
-
* The log level of the logger.
|
|
580
|
-
* @type {number}
|
|
581
|
-
*/
|
|
582
|
-
__publicField(Logger, "level", 2);
|
|
583
|
-
/**
|
|
584
|
-
* Indicates whether colors are enabled for log messages.
|
|
585
|
-
* @type {boolean}
|
|
586
|
-
*/
|
|
587
|
-
__publicField(Logger, "colors", true);
|
|
588
|
-
/**
|
|
589
|
-
* Defines log levels and their associated numeric values.
|
|
590
|
-
* @type {Object}
|
|
591
|
-
*/
|
|
592
|
-
__publicField(Logger, "levels", {
|
|
593
|
-
error: 0,
|
|
594
|
-
warn: 1,
|
|
595
|
-
info: 2,
|
|
596
|
-
http: 3,
|
|
597
|
-
verbose: 4,
|
|
598
|
-
debug: 5,
|
|
599
|
-
silly: 6
|
|
600
|
-
});
|
|
601
|
-
__privateAdd(Logger, _levels, {
|
|
602
|
-
0: "ERROR",
|
|
603
|
-
1: "WARN",
|
|
604
|
-
2: "INFO",
|
|
605
|
-
3: "HTTP",
|
|
606
|
-
4: "VERBOSE",
|
|
607
|
-
5: "DEBUG",
|
|
608
|
-
6: "SILLY"
|
|
609
|
-
});
|
|
497
|
+
}
|
|
610
498
|
export {
|
|
611
499
|
Logger as default
|
|
612
500
|
};
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rabbit-company/logger",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Simple logger",
|
|
5
|
-
"main": "./
|
|
5
|
+
"main": "./module/logger.js",
|
|
6
6
|
"browser": "./module/logger.js",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"homepage": "https://github.com/Rabbit-Company/Logger-JS",
|
|
@@ -11,13 +11,11 @@
|
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"private": false,
|
|
13
13
|
"scripts": {
|
|
14
|
-
"build": "
|
|
14
|
+
"build": "bun run build.ts"
|
|
15
15
|
},
|
|
16
16
|
"files": [
|
|
17
17
|
"module/logger.js",
|
|
18
|
-
"module/logger.d.ts"
|
|
19
|
-
"src/logger.js",
|
|
20
|
-
"src/logger.d.ts"
|
|
18
|
+
"module/logger.d.ts"
|
|
21
19
|
],
|
|
22
20
|
"repository": {
|
|
23
21
|
"type": "git",
|
|
@@ -33,10 +31,13 @@
|
|
|
33
31
|
"keywords": [
|
|
34
32
|
"logger"
|
|
35
33
|
],
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@types/bun": "latest",
|
|
36
|
+
"bun-plugin-dts": "^0.2.1",
|
|
37
|
+
"@rabbit-company/logger": "^2.1.1",
|
|
40
38
|
"chalk": "^5.3.0"
|
|
41
|
-
|
|
39
|
+
},
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"typescript": "^5.0.0"
|
|
42
|
+
}
|
|
42
43
|
}
|
package/src/logger.d.ts
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Represents a logger utility for logging messages with different log levels.
|
|
3
|
-
*/
|
|
4
|
-
export default class Logger {
|
|
5
|
-
static "__#1@#NDJson": string;
|
|
6
|
-
/**
|
|
7
|
-
* Indicates whether NDJson is enabled.
|
|
8
|
-
* @type {boolean}
|
|
9
|
-
*/
|
|
10
|
-
static NDJson: boolean;
|
|
11
|
-
/**
|
|
12
|
-
* The log level of the logger.
|
|
13
|
-
* @type {number}
|
|
14
|
-
*/
|
|
15
|
-
static level: number;
|
|
16
|
-
/**
|
|
17
|
-
* Indicates whether colors are enabled for log messages.
|
|
18
|
-
* @type {boolean}
|
|
19
|
-
*/
|
|
20
|
-
static colors: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Defines log levels and their associated numeric values.
|
|
23
|
-
* @type {Object}
|
|
24
|
-
*/
|
|
25
|
-
static levels: any;
|
|
26
|
-
static "__#1@#levels": {
|
|
27
|
-
0: string;
|
|
28
|
-
1: string;
|
|
29
|
-
2: string;
|
|
30
|
-
3: string;
|
|
31
|
-
4: string;
|
|
32
|
-
5: string;
|
|
33
|
-
6: string;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Parses the log message to ensure it is a string.
|
|
37
|
-
* @param {*} message - The log message.
|
|
38
|
-
* @returns {string | null} - The parsed log message or null if the message is undefined.
|
|
39
|
-
*/
|
|
40
|
-
static parseMessage(message: any): string | null;
|
|
41
|
-
/**
|
|
42
|
-
* Formats the log message with timestamp and log level.
|
|
43
|
-
* @param {string} message - The log message.
|
|
44
|
-
* @param {number} logLevel - The log level.
|
|
45
|
-
* @returns {string} - The formatted log message.
|
|
46
|
-
*/
|
|
47
|
-
static formatMessage(message: string, logLevel: number): string;
|
|
48
|
-
/**
|
|
49
|
-
* Processes and logs a message with the specified log level.
|
|
50
|
-
* @param {*} message - The log message.
|
|
51
|
-
* @param {number} level - The log level.
|
|
52
|
-
*/
|
|
53
|
-
static "__#1@#processMessage"(message: any, level: number): void;
|
|
54
|
-
/**
|
|
55
|
-
* Logs an error message.
|
|
56
|
-
* @param {*} message - The error message.
|
|
57
|
-
*/
|
|
58
|
-
static error(message: any): void;
|
|
59
|
-
/**
|
|
60
|
-
* Logs a warning message.
|
|
61
|
-
* @param {*} message - The warning message.
|
|
62
|
-
*/
|
|
63
|
-
static warn(message: any): void;
|
|
64
|
-
/**
|
|
65
|
-
* Logs an informational message.
|
|
66
|
-
* @param {*} message - The informational message.
|
|
67
|
-
*/
|
|
68
|
-
static info(message: any): void;
|
|
69
|
-
/**
|
|
70
|
-
* Logs an HTTP-related message.
|
|
71
|
-
* @param {*} message - The HTTP-related message.
|
|
72
|
-
*/
|
|
73
|
-
static http(message: any): void;
|
|
74
|
-
/**
|
|
75
|
-
* Logs a verbose message.
|
|
76
|
-
* @param {*} message - The verbose message.
|
|
77
|
-
*/
|
|
78
|
-
static verbose(message: any): void;
|
|
79
|
-
/**
|
|
80
|
-
* Logs a debug message.
|
|
81
|
-
* @param {*} message - The debug message.
|
|
82
|
-
*/
|
|
83
|
-
static debug(message: any): void;
|
|
84
|
-
/**
|
|
85
|
-
* Logs a silly message.
|
|
86
|
-
* @param {*} message - The silly message.
|
|
87
|
-
*/
|
|
88
|
-
static silly(message: any): void;
|
|
89
|
-
/**
|
|
90
|
-
* Appends a message to NDJson format.
|
|
91
|
-
* @param {string} message - The message to append.
|
|
92
|
-
* @param {number} logLevel - The log level associated with the message.
|
|
93
|
-
*/
|
|
94
|
-
static putNDJson(message: string, logLevel: number): void;
|
|
95
|
-
/**
|
|
96
|
-
* Gets the NDJson log.
|
|
97
|
-
* @returns {string} - The NDJson log.
|
|
98
|
-
*/
|
|
99
|
-
static getNDJson(): string;
|
|
100
|
-
}
|
package/src/logger.js
DELETED
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Represents a logger utility for logging messages with different log levels.
|
|
5
|
-
*/
|
|
6
|
-
export default class Logger{
|
|
7
|
-
|
|
8
|
-
static #NDJson = '';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Indicates whether NDJson is enabled.
|
|
12
|
-
* @type {boolean}
|
|
13
|
-
*/
|
|
14
|
-
static NDJson = false;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* The log level of the logger.
|
|
18
|
-
* @type {number}
|
|
19
|
-
*/
|
|
20
|
-
static level = 2;
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Indicates whether colors are enabled for log messages.
|
|
24
|
-
* @type {boolean}
|
|
25
|
-
*/
|
|
26
|
-
static colors = true;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Defines log levels and their associated numeric values.
|
|
30
|
-
* @type {Object}
|
|
31
|
-
*/
|
|
32
|
-
static levels = {
|
|
33
|
-
error: 0,
|
|
34
|
-
warn: 1,
|
|
35
|
-
info: 2,
|
|
36
|
-
http: 3,
|
|
37
|
-
verbose: 4,
|
|
38
|
-
debug: 5,
|
|
39
|
-
silly: 6
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
static #levels = {
|
|
43
|
-
0: 'ERROR',
|
|
44
|
-
1: 'WARN',
|
|
45
|
-
2: 'INFO',
|
|
46
|
-
3: 'HTTP',
|
|
47
|
-
4: 'VERBOSE',
|
|
48
|
-
5: 'DEBUG',
|
|
49
|
-
6: 'SILLY'
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Parses the log message to ensure it is a string.
|
|
54
|
-
* @param {*} message - The log message.
|
|
55
|
-
* @returns {string | null} - The parsed log message or null if the message is undefined.
|
|
56
|
-
*/
|
|
57
|
-
static parseMessage(message){
|
|
58
|
-
if(typeof(message) === 'undefined') return null;
|
|
59
|
-
if(typeof(message) === 'object') message = JSON.stringify(message);
|
|
60
|
-
return message;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Formats the log message with timestamp and log level.
|
|
65
|
-
* @param {string} message - The log message.
|
|
66
|
-
* @param {number} logLevel - The log level.
|
|
67
|
-
* @returns {string} - The formatted log message.
|
|
68
|
-
*/
|
|
69
|
-
static formatMessage(message, logLevel){
|
|
70
|
-
let type = this.#levels[logLevel];
|
|
71
|
-
let date = new Date().toISOString().split('.')[0].replace('T', ' ');
|
|
72
|
-
|
|
73
|
-
if(this.colors){
|
|
74
|
-
date = chalk.gray(date);
|
|
75
|
-
|
|
76
|
-
switch(logLevel){
|
|
77
|
-
case 0:
|
|
78
|
-
type = chalk.bold(chalk.red(type));
|
|
79
|
-
message = chalk.red(message);
|
|
80
|
-
break;
|
|
81
|
-
case 1:
|
|
82
|
-
type = chalk.bold(chalk.yellow(type));
|
|
83
|
-
message = chalk.yellow(message);
|
|
84
|
-
break;
|
|
85
|
-
case 2:
|
|
86
|
-
type = chalk.bold(chalk.cyan(type));
|
|
87
|
-
message = chalk.cyan(message);
|
|
88
|
-
break;
|
|
89
|
-
case 3:
|
|
90
|
-
type = chalk.bold(chalk.blue(type));
|
|
91
|
-
message = chalk.blue(message);
|
|
92
|
-
break;
|
|
93
|
-
case 4:
|
|
94
|
-
type = chalk.bold(chalk.blue(type));
|
|
95
|
-
message = chalk.blue(message);
|
|
96
|
-
break;
|
|
97
|
-
case 5:
|
|
98
|
-
type = chalk.bold(chalk.gray(type));
|
|
99
|
-
message = chalk.gray(message);
|
|
100
|
-
break;
|
|
101
|
-
case 6:
|
|
102
|
-
type = chalk.bold(chalk.gray(type));
|
|
103
|
-
message = chalk.gray(message);
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
return `[${date}] ${type} ${message}`;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Processes and logs a message with the specified log level.
|
|
113
|
-
* @param {*} message - The log message.
|
|
114
|
-
* @param {number} level - The log level.
|
|
115
|
-
*/
|
|
116
|
-
static #processMessage(message, level){
|
|
117
|
-
if(this.level < level) return;
|
|
118
|
-
message = this.parseMessage(message);
|
|
119
|
-
if(message === null) return;
|
|
120
|
-
if(this.NDJson) this.putNDJson(message, level);
|
|
121
|
-
|
|
122
|
-
switch(level){
|
|
123
|
-
case 0:
|
|
124
|
-
console.error(this.formatMessage(message, level));
|
|
125
|
-
break;
|
|
126
|
-
case 1:
|
|
127
|
-
console.warn(this.formatMessage(message, level));
|
|
128
|
-
break;
|
|
129
|
-
default:
|
|
130
|
-
console.info(this.formatMessage(message, level));
|
|
131
|
-
break;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Logs an error message.
|
|
138
|
-
* @param {*} message - The error message.
|
|
139
|
-
*/
|
|
140
|
-
static error(message){
|
|
141
|
-
this.#processMessage(message, 0);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Logs a warning message.
|
|
146
|
-
* @param {*} message - The warning message.
|
|
147
|
-
*/
|
|
148
|
-
static warn(message){
|
|
149
|
-
this.#processMessage(message, 1);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Logs an informational message.
|
|
154
|
-
* @param {*} message - The informational message.
|
|
155
|
-
*/
|
|
156
|
-
static info(message){
|
|
157
|
-
this.#processMessage(message, 2);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Logs an HTTP-related message.
|
|
162
|
-
* @param {*} message - The HTTP-related message.
|
|
163
|
-
*/
|
|
164
|
-
static http(message){
|
|
165
|
-
this.#processMessage(message, 3);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Logs a verbose message.
|
|
170
|
-
* @param {*} message - The verbose message.
|
|
171
|
-
*/
|
|
172
|
-
static verbose(message){
|
|
173
|
-
this.#processMessage(message, 4);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Logs a debug message.
|
|
178
|
-
* @param {*} message - The debug message.
|
|
179
|
-
*/
|
|
180
|
-
static debug(message){
|
|
181
|
-
this.#processMessage(message, 5);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Logs a silly message.
|
|
186
|
-
* @param {*} message - The silly message.
|
|
187
|
-
*/
|
|
188
|
-
static silly(message){
|
|
189
|
-
this.#processMessage(message, 6);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Appends a message to NDJson format.
|
|
194
|
-
* @param {string} message - The message to append.
|
|
195
|
-
* @param {number} logLevel - The log level associated with the message.
|
|
196
|
-
*/
|
|
197
|
-
static putNDJson(message, logLevel){
|
|
198
|
-
let separator = (this.#NDJson.length !== 0) ? '\n' : '';
|
|
199
|
-
this.#NDJson += separator + JSON.stringify({ 'time': new Date().toISOString(), 'level': logLevel, 'msg': message });
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Gets the NDJson log.
|
|
204
|
-
* @returns {string} - The NDJson log.
|
|
205
|
-
*/
|
|
206
|
-
static getNDJson(){
|
|
207
|
-
return this.#NDJson;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
}
|