@feizk/logger 2.0.0 → 2.0.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.
- package/dist/index.js +37 -30
- package/dist/index.mjs +37 -30
- package/package.json +3 -4
package/dist/index.js
CHANGED
|
@@ -102,14 +102,7 @@ function formatTimestamp(option, date = /* @__PURE__ */ new Date()) {
|
|
|
102
102
|
return preset(date);
|
|
103
103
|
}
|
|
104
104
|
function formatJson(entry) {
|
|
105
|
-
const message = entry.args.map((
|
|
106
|
-
if (typeof arg === "string") return arg;
|
|
107
|
-
try {
|
|
108
|
-
return JSON.stringify(arg);
|
|
109
|
-
} catch {
|
|
110
|
-
return String(arg);
|
|
111
|
-
}
|
|
112
|
-
}).join(" ");
|
|
105
|
+
const message = entry.args.map(formatArg).join(" ");
|
|
113
106
|
const output = {
|
|
114
107
|
level: entry.level,
|
|
115
108
|
timestamp: entry.timestamp,
|
|
@@ -123,15 +116,47 @@ function formatJson(entry) {
|
|
|
123
116
|
}
|
|
124
117
|
return JSON.stringify(output);
|
|
125
118
|
}
|
|
126
|
-
function
|
|
127
|
-
|
|
128
|
-
|
|
119
|
+
function formatArg(arg) {
|
|
120
|
+
if (arg === null) return "null";
|
|
121
|
+
if (arg === void 0) return "undefined";
|
|
122
|
+
if (typeof arg === "string") return arg;
|
|
123
|
+
if (typeof arg === "number") return String(arg);
|
|
124
|
+
if (typeof arg === "boolean") return String(arg);
|
|
125
|
+
if (typeof arg === "bigint") return `${arg}n`;
|
|
126
|
+
if (typeof arg === "symbol") return arg.toString();
|
|
127
|
+
if (arg instanceof Error) {
|
|
128
|
+
const parts = [arg.message];
|
|
129
|
+
if (arg.name && arg.name !== "Error") parts.unshift(arg.name);
|
|
130
|
+
if (arg.stack) parts.push(arg.stack);
|
|
131
|
+
return parts.join(": ");
|
|
132
|
+
}
|
|
133
|
+
if (Array.isArray(arg)) {
|
|
129
134
|
try {
|
|
130
135
|
return JSON.stringify(arg);
|
|
131
136
|
} catch {
|
|
132
137
|
return String(arg);
|
|
133
138
|
}
|
|
134
|
-
}
|
|
139
|
+
}
|
|
140
|
+
try {
|
|
141
|
+
return JSON.stringify(arg, getCircularReplacer());
|
|
142
|
+
} catch {
|
|
143
|
+
return String(arg);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
function getCircularReplacer() {
|
|
147
|
+
const seen = /* @__PURE__ */ new WeakSet();
|
|
148
|
+
return (_key, value) => {
|
|
149
|
+
if (typeof value === "object" && value !== null) {
|
|
150
|
+
if (seen.has(value)) {
|
|
151
|
+
return "[Circular]";
|
|
152
|
+
}
|
|
153
|
+
seen.add(value);
|
|
154
|
+
}
|
|
155
|
+
return value;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
function buildMessage(args) {
|
|
159
|
+
return args.map(formatArg).join(" ");
|
|
135
160
|
}
|
|
136
161
|
|
|
137
162
|
// src/logger.ts
|
|
@@ -156,9 +181,6 @@ var Logger = class _Logger {
|
|
|
156
181
|
this.prefix = this.options.prefix;
|
|
157
182
|
this.context = this.options.context;
|
|
158
183
|
}
|
|
159
|
-
// ============================================================================
|
|
160
|
-
// Public Log Methods
|
|
161
|
-
// ============================================================================
|
|
162
184
|
/**
|
|
163
185
|
* Log a trace message (most verbose).
|
|
164
186
|
* @param args - Arguments to log
|
|
@@ -201,9 +223,6 @@ var Logger = class _Logger {
|
|
|
201
223
|
fatal(...args) {
|
|
202
224
|
this.log("fatal", args);
|
|
203
225
|
}
|
|
204
|
-
// ============================================================================
|
|
205
|
-
// Level Management
|
|
206
|
-
// ============================================================================
|
|
207
226
|
/**
|
|
208
227
|
* Set the minimum log level.
|
|
209
228
|
* @param level - The log level to set
|
|
@@ -218,9 +237,6 @@ var Logger = class _Logger {
|
|
|
218
237
|
getLevel() {
|
|
219
238
|
return this.options.level;
|
|
220
239
|
}
|
|
221
|
-
// ============================================================================
|
|
222
|
-
// Transport Management
|
|
223
|
-
// ============================================================================
|
|
224
240
|
/**
|
|
225
241
|
* Add a transport to the logger.
|
|
226
242
|
* @param transport - The transport to add
|
|
@@ -238,9 +254,6 @@ var Logger = class _Logger {
|
|
|
238
254
|
this.transports.splice(index, 1);
|
|
239
255
|
}
|
|
240
256
|
}
|
|
241
|
-
// ============================================================================
|
|
242
|
-
// Child Logger
|
|
243
|
-
// ============================================================================
|
|
244
257
|
/**
|
|
245
258
|
* Create a child logger with additional prefix and context.
|
|
246
259
|
* @param options - Child logger options
|
|
@@ -264,9 +277,6 @@ var Logger = class _Logger {
|
|
|
264
277
|
context: combinedContext
|
|
265
278
|
});
|
|
266
279
|
}
|
|
267
|
-
// ============================================================================
|
|
268
|
-
// Cleanup
|
|
269
|
-
// ============================================================================
|
|
270
280
|
/**
|
|
271
281
|
* Destroy the logger and all its transports.
|
|
272
282
|
* Calls destroy() on all registered transports.
|
|
@@ -280,9 +290,6 @@ var Logger = class _Logger {
|
|
|
280
290
|
await Promise.all(destroyPromises);
|
|
281
291
|
this.transports.length = 0;
|
|
282
292
|
}
|
|
283
|
-
// ============================================================================
|
|
284
|
-
// Private Methods
|
|
285
|
-
// ============================================================================
|
|
286
293
|
/**
|
|
287
294
|
* Core logging method - all public methods delegate here.
|
|
288
295
|
* @param level - The log level
|
package/dist/index.mjs
CHANGED
|
@@ -74,14 +74,7 @@ function formatTimestamp(option, date = /* @__PURE__ */ new Date()) {
|
|
|
74
74
|
return preset(date);
|
|
75
75
|
}
|
|
76
76
|
function formatJson(entry) {
|
|
77
|
-
const message = entry.args.map((
|
|
78
|
-
if (typeof arg === "string") return arg;
|
|
79
|
-
try {
|
|
80
|
-
return JSON.stringify(arg);
|
|
81
|
-
} catch {
|
|
82
|
-
return String(arg);
|
|
83
|
-
}
|
|
84
|
-
}).join(" ");
|
|
77
|
+
const message = entry.args.map(formatArg).join(" ");
|
|
85
78
|
const output = {
|
|
86
79
|
level: entry.level,
|
|
87
80
|
timestamp: entry.timestamp,
|
|
@@ -95,15 +88,47 @@ function formatJson(entry) {
|
|
|
95
88
|
}
|
|
96
89
|
return JSON.stringify(output);
|
|
97
90
|
}
|
|
98
|
-
function
|
|
99
|
-
|
|
100
|
-
|
|
91
|
+
function formatArg(arg) {
|
|
92
|
+
if (arg === null) return "null";
|
|
93
|
+
if (arg === void 0) return "undefined";
|
|
94
|
+
if (typeof arg === "string") return arg;
|
|
95
|
+
if (typeof arg === "number") return String(arg);
|
|
96
|
+
if (typeof arg === "boolean") return String(arg);
|
|
97
|
+
if (typeof arg === "bigint") return `${arg}n`;
|
|
98
|
+
if (typeof arg === "symbol") return arg.toString();
|
|
99
|
+
if (arg instanceof Error) {
|
|
100
|
+
const parts = [arg.message];
|
|
101
|
+
if (arg.name && arg.name !== "Error") parts.unshift(arg.name);
|
|
102
|
+
if (arg.stack) parts.push(arg.stack);
|
|
103
|
+
return parts.join(": ");
|
|
104
|
+
}
|
|
105
|
+
if (Array.isArray(arg)) {
|
|
101
106
|
try {
|
|
102
107
|
return JSON.stringify(arg);
|
|
103
108
|
} catch {
|
|
104
109
|
return String(arg);
|
|
105
110
|
}
|
|
106
|
-
}
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
return JSON.stringify(arg, getCircularReplacer());
|
|
114
|
+
} catch {
|
|
115
|
+
return String(arg);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function getCircularReplacer() {
|
|
119
|
+
const seen = /* @__PURE__ */ new WeakSet();
|
|
120
|
+
return (_key, value) => {
|
|
121
|
+
if (typeof value === "object" && value !== null) {
|
|
122
|
+
if (seen.has(value)) {
|
|
123
|
+
return "[Circular]";
|
|
124
|
+
}
|
|
125
|
+
seen.add(value);
|
|
126
|
+
}
|
|
127
|
+
return value;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function buildMessage(args) {
|
|
131
|
+
return args.map(formatArg).join(" ");
|
|
107
132
|
}
|
|
108
133
|
|
|
109
134
|
// src/logger.ts
|
|
@@ -128,9 +153,6 @@ var Logger = class _Logger {
|
|
|
128
153
|
this.prefix = this.options.prefix;
|
|
129
154
|
this.context = this.options.context;
|
|
130
155
|
}
|
|
131
|
-
// ============================================================================
|
|
132
|
-
// Public Log Methods
|
|
133
|
-
// ============================================================================
|
|
134
156
|
/**
|
|
135
157
|
* Log a trace message (most verbose).
|
|
136
158
|
* @param args - Arguments to log
|
|
@@ -173,9 +195,6 @@ var Logger = class _Logger {
|
|
|
173
195
|
fatal(...args) {
|
|
174
196
|
this.log("fatal", args);
|
|
175
197
|
}
|
|
176
|
-
// ============================================================================
|
|
177
|
-
// Level Management
|
|
178
|
-
// ============================================================================
|
|
179
198
|
/**
|
|
180
199
|
* Set the minimum log level.
|
|
181
200
|
* @param level - The log level to set
|
|
@@ -190,9 +209,6 @@ var Logger = class _Logger {
|
|
|
190
209
|
getLevel() {
|
|
191
210
|
return this.options.level;
|
|
192
211
|
}
|
|
193
|
-
// ============================================================================
|
|
194
|
-
// Transport Management
|
|
195
|
-
// ============================================================================
|
|
196
212
|
/**
|
|
197
213
|
* Add a transport to the logger.
|
|
198
214
|
* @param transport - The transport to add
|
|
@@ -210,9 +226,6 @@ var Logger = class _Logger {
|
|
|
210
226
|
this.transports.splice(index, 1);
|
|
211
227
|
}
|
|
212
228
|
}
|
|
213
|
-
// ============================================================================
|
|
214
|
-
// Child Logger
|
|
215
|
-
// ============================================================================
|
|
216
229
|
/**
|
|
217
230
|
* Create a child logger with additional prefix and context.
|
|
218
231
|
* @param options - Child logger options
|
|
@@ -236,9 +249,6 @@ var Logger = class _Logger {
|
|
|
236
249
|
context: combinedContext
|
|
237
250
|
});
|
|
238
251
|
}
|
|
239
|
-
// ============================================================================
|
|
240
|
-
// Cleanup
|
|
241
|
-
// ============================================================================
|
|
242
252
|
/**
|
|
243
253
|
* Destroy the logger and all its transports.
|
|
244
254
|
* Calls destroy() on all registered transports.
|
|
@@ -252,9 +262,6 @@ var Logger = class _Logger {
|
|
|
252
262
|
await Promise.all(destroyPromises);
|
|
253
263
|
this.transports.length = 0;
|
|
254
264
|
}
|
|
255
|
-
// ============================================================================
|
|
256
|
-
// Private Methods
|
|
257
|
-
// ============================================================================
|
|
258
265
|
/**
|
|
259
266
|
* Core logging method - all public methods delegate here.
|
|
260
267
|
* @param level - The log level
|
package/package.json
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feizk/logger",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "A lightweight, pluggable logger with colored outputs, structured logging, and transport support",
|
|
5
|
-
"main": "dist/index.
|
|
6
|
-
"module": "dist/index.js",
|
|
5
|
+
"main": "dist/index.js",
|
|
7
6
|
"types": "dist/index.d.ts",
|
|
8
7
|
"publishConfig": {
|
|
9
8
|
"access": "public"
|
|
@@ -11,7 +10,7 @@
|
|
|
11
10
|
"exports": {
|
|
12
11
|
"types": "./dist/index.d.ts",
|
|
13
12
|
"import": "./dist/index.js",
|
|
14
|
-
"require": "./dist/index.
|
|
13
|
+
"require": "./dist/index.js"
|
|
15
14
|
},
|
|
16
15
|
"engines": {
|
|
17
16
|
"node": ">=18"
|