@dxos/log 0.8.4-main.e99c46d → 0.8.4-main.ef1bc66f44
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/lib/browser/chunk-GPOFUMLO.mjs +133 -0
- package/dist/lib/browser/chunk-GPOFUMLO.mjs.map +7 -0
- package/dist/lib/browser/chunk-IEP6GGEX.mjs +23 -0
- package/dist/lib/browser/chunk-IEP6GGEX.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +153 -201
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/platform/browser/index.mjs +26 -0
- package/dist/lib/browser/platform/browser/index.mjs.map +7 -0
- package/dist/lib/browser/platform/node/index.mjs +21 -0
- package/dist/lib/browser/platform/node/index.mjs.map +7 -0
- package/dist/lib/browser/processors/console-processor.mjs +107 -0
- package/dist/lib/browser/processors/console-processor.mjs.map +7 -0
- package/dist/lib/browser/processors/console-stub.mjs +9 -0
- package/dist/lib/browser/processors/console-stub.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-2SZHAWBN.mjs +24 -0
- package/dist/lib/node-esm/chunk-2SZHAWBN.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-QPYJZ4SO.mjs +135 -0
- package/dist/lib/node-esm/chunk-QPYJZ4SO.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +148 -283
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/platform/browser/index.mjs +27 -0
- package/dist/lib/node-esm/platform/browser/index.mjs.map +7 -0
- package/dist/lib/node-esm/platform/node/index.mjs +22 -0
- package/dist/lib/node-esm/platform/node/index.mjs.map +7 -0
- package/dist/lib/node-esm/processors/console-processor.mjs +108 -0
- package/dist/lib/node-esm/processors/console-processor.mjs.map +7 -0
- package/dist/lib/node-esm/processors/console-stub.mjs +10 -0
- package/dist/lib/node-esm/processors/console-stub.mjs.map +7 -0
- package/dist/types/src/config.d.ts.map +1 -1
- package/dist/types/src/context.d.ts.map +1 -1
- package/dist/types/src/dbg.d.ts +23 -0
- package/dist/types/src/dbg.d.ts.map +1 -0
- package/dist/types/src/decorators.d.ts +1 -1
- package/dist/types/src/decorators.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/log.d.ts +12 -18
- package/dist/types/src/log.d.ts.map +1 -1
- package/dist/types/src/options.d.ts +1 -6
- package/dist/types/src/options.d.ts.map +1 -1
- package/dist/types/src/platform/index.d.ts +1 -1
- package/dist/types/src/platform/index.d.ts.map +1 -1
- package/dist/types/src/processors/browser-processor.d.ts.map +1 -1
- package/dist/types/src/processors/file-processor.d.ts.map +1 -1
- package/dist/types/src/processors/index.d.ts +3 -3
- package/dist/types/src/processors/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +29 -9
- package/src/config.ts +1 -0
- package/src/context.ts +36 -5
- package/src/dbg.ts +35 -0
- package/src/decorators.ts +3 -3
- package/src/index.ts +1 -0
- package/src/log.test.ts +48 -18
- package/src/log.ts +101 -57
- package/src/options.ts +26 -10
- package/src/platform/index.ts +1 -1
- package/src/processors/browser-processor.ts +2 -0
- package/src/processors/file-processor.ts +2 -0
- package/src/processors/index.ts +3 -3
|
@@ -1,104 +1,48 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
LogLevel,
|
|
4
|
+
LogProcessorType,
|
|
5
|
+
gatherLogInfoFromScope,
|
|
6
|
+
getContextFromEntry,
|
|
7
|
+
getRelativeFilename,
|
|
8
|
+
levels,
|
|
9
|
+
logInfo,
|
|
10
|
+
shortLevelName,
|
|
11
|
+
shouldLog
|
|
12
|
+
} from "./chunk-QPYJZ4SO.mjs";
|
|
13
|
+
import {
|
|
14
|
+
__export,
|
|
15
|
+
__reExport
|
|
16
|
+
} from "./chunk-2SZHAWBN.mjs";
|
|
2
17
|
|
|
3
18
|
// src/index.ts
|
|
19
|
+
var index_exports = {};
|
|
20
|
+
__export(index_exports, {
|
|
21
|
+
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
22
|
+
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
23
|
+
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
24
|
+
LogLevel: () => LogLevel,
|
|
25
|
+
LogProcessorType: () => LogProcessorType,
|
|
26
|
+
createFileProcessor: () => createFileProcessor,
|
|
27
|
+
createLog: () => createLog,
|
|
28
|
+
dbg: () => dbg,
|
|
29
|
+
debug: () => debug,
|
|
30
|
+
gatherLogInfoFromScope: () => gatherLogInfoFromScope,
|
|
31
|
+
getContextFromEntry: () => getContextFromEntry,
|
|
32
|
+
getCurrentOwnershipScope: () => getCurrentOwnershipScope,
|
|
33
|
+
getRelativeFilename: () => getRelativeFilename,
|
|
34
|
+
levels: () => levels,
|
|
35
|
+
log: () => log,
|
|
36
|
+
logInfo: () => logInfo,
|
|
37
|
+
omit: () => omit,
|
|
38
|
+
parseFilter: () => parseFilter,
|
|
39
|
+
pick: () => pick,
|
|
40
|
+
shortLevelName: () => shortLevelName,
|
|
41
|
+
shouldLog: () => shouldLog
|
|
42
|
+
});
|
|
4
43
|
import omit from "lodash.omit";
|
|
5
44
|
import { pick } from "@dxos/util";
|
|
6
45
|
|
|
7
|
-
// src/config.ts
|
|
8
|
-
var LogLevel = /* @__PURE__ */ (function(LogLevel2) {
|
|
9
|
-
LogLevel2[LogLevel2["TRACE"] = 5] = "TRACE";
|
|
10
|
-
LogLevel2[LogLevel2["DEBUG"] = 10] = "DEBUG";
|
|
11
|
-
LogLevel2[LogLevel2["VERBOSE"] = 11] = "VERBOSE";
|
|
12
|
-
LogLevel2[LogLevel2["INFO"] = 12] = "INFO";
|
|
13
|
-
LogLevel2[LogLevel2["WARN"] = 13] = "WARN";
|
|
14
|
-
LogLevel2[LogLevel2["ERROR"] = 14] = "ERROR";
|
|
15
|
-
return LogLevel2;
|
|
16
|
-
})({});
|
|
17
|
-
var levels = {
|
|
18
|
-
trace: 5,
|
|
19
|
-
debug: 10,
|
|
20
|
-
verbose: 11,
|
|
21
|
-
info: 12,
|
|
22
|
-
warn: 13,
|
|
23
|
-
error: 14
|
|
24
|
-
};
|
|
25
|
-
var shortLevelName = {
|
|
26
|
-
[5]: "T",
|
|
27
|
-
[10]: "D",
|
|
28
|
-
[11]: "V",
|
|
29
|
-
[12]: "I",
|
|
30
|
-
[13]: "W",
|
|
31
|
-
[14]: "E"
|
|
32
|
-
};
|
|
33
|
-
var LogProcessorType = /* @__PURE__ */ (function(LogProcessorType2) {
|
|
34
|
-
LogProcessorType2["CONSOLE"] = "console";
|
|
35
|
-
LogProcessorType2["BROWSER"] = "browser";
|
|
36
|
-
LogProcessorType2["DEBUG"] = "debug";
|
|
37
|
-
return LogProcessorType2;
|
|
38
|
-
})({});
|
|
39
|
-
|
|
40
|
-
// src/scope.ts
|
|
41
|
-
var logInfoProperties = Symbol("logInfoProperties");
|
|
42
|
-
var logInfo = (target, propertyKey, descriptor) => {
|
|
43
|
-
var _target, _logInfoProperties;
|
|
44
|
-
((_target = target)[_logInfoProperties = logInfoProperties] ?? (_target[_logInfoProperties] = [])).push(propertyKey);
|
|
45
|
-
};
|
|
46
|
-
var gatherLogInfoFromScope = (scope) => {
|
|
47
|
-
if (!scope) {
|
|
48
|
-
return {};
|
|
49
|
-
}
|
|
50
|
-
const res = {};
|
|
51
|
-
const prototype = Object.getPrototypeOf(scope);
|
|
52
|
-
const infoProps = (typeof prototype === "object" && prototype !== null ? prototype[logInfoProperties] : []) ?? [];
|
|
53
|
-
for (const prop of infoProps) {
|
|
54
|
-
try {
|
|
55
|
-
res[prop] = typeof scope[prop] === "function" ? scope[prop]() : scope[prop];
|
|
56
|
-
} catch (err) {
|
|
57
|
-
res[prop] = err.message;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return res;
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
// src/context.ts
|
|
64
|
-
var matchFilter = (filter, level, path) => {
|
|
65
|
-
return level >= filter.level && (!filter.pattern || path.includes(filter.pattern));
|
|
66
|
-
};
|
|
67
|
-
var shouldLog = (entry, filters) => {
|
|
68
|
-
if (filters === void 0) {
|
|
69
|
-
return true;
|
|
70
|
-
} else {
|
|
71
|
-
return filters.some((filter) => matchFilter(filter, entry.level, entry.meta?.F ?? ""));
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
var getContextFromEntry = (entry) => {
|
|
75
|
-
let context;
|
|
76
|
-
if (entry.meta) {
|
|
77
|
-
const scopeInfo = gatherLogInfoFromScope(entry.meta.S);
|
|
78
|
-
if (Object.keys(scopeInfo).length > 0) {
|
|
79
|
-
context = Object.assign(context ?? {}, scopeInfo);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
const entryContext = typeof entry.context === "function" ? entry.context() : entry.context;
|
|
83
|
-
if (entryContext) {
|
|
84
|
-
if (entryContext instanceof Error) {
|
|
85
|
-
const c = entryContext.context;
|
|
86
|
-
context = Object.assign(context ?? {}, {
|
|
87
|
-
error: entryContext.stack,
|
|
88
|
-
...c
|
|
89
|
-
});
|
|
90
|
-
} else if (typeof entryContext === "object") {
|
|
91
|
-
context = Object.assign(context ?? {}, entryContext);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
if (entry.error) {
|
|
95
|
-
context = Object.assign(context ?? {}, {
|
|
96
|
-
error: entry.error
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
return context && Object.keys(context).length > 0 ? context : void 0;
|
|
100
|
-
};
|
|
101
|
-
|
|
102
46
|
// src/decorators.ts
|
|
103
47
|
import { inspect } from "node:util";
|
|
104
48
|
import chalk from "chalk";
|
|
@@ -198,144 +142,33 @@ var logAsyncResolved = (log2, methodName, resolvedValue, promiseId, startTime, c
|
|
|
198
142
|
var logAsyncRejected = (log2, methodName, err, promiseId, startTime, combinedMeta) => {
|
|
199
143
|
log2.info(`.${formatFunction(methodName)} \u21B2 \u{1F525} ${chalk.gray("reject")} ${formatPromise(promiseId)} ${formatTimeElapsed(startTime)} ${chalk.gray("=>")} ${err}`, {}, combinedMeta);
|
|
200
144
|
};
|
|
201
|
-
var greenCheck = typeof chalk.green === "function" ? chalk.green("\u2714") : "\u2714";
|
|
202
|
-
var formatTimeElapsed = (startTime) => chalk.gray(`${(performance.now() - startTime).toFixed(0)}ms`);
|
|
203
145
|
var COLOR_FUNCTION = [
|
|
204
146
|
220,
|
|
205
147
|
220,
|
|
206
148
|
170
|
|
207
149
|
];
|
|
150
|
+
var greenCheck = typeof chalk.green === "function" ? chalk.green("\u2714") : "\u2714";
|
|
151
|
+
var formatTimeElapsed = (startTime) => chalk.gray(`${(performance.now() - startTime).toFixed(0)}ms`);
|
|
208
152
|
var formatFunction = (name) => chalk.bold(chalk.rgb(...COLOR_FUNCTION)(name));
|
|
209
153
|
var formatPromise = (id) => chalk.blue(`Promise#${id}`);
|
|
210
154
|
|
|
211
155
|
// src/options.ts
|
|
212
156
|
import defaultsDeep from "lodash.defaultsdeep";
|
|
213
157
|
|
|
214
|
-
// src/platform/
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
if (filepath) {
|
|
219
|
-
try {
|
|
220
|
-
const text = fs.readFileSync(filepath, "utf-8");
|
|
221
|
-
if (text) {
|
|
222
|
-
return yaml.load(text);
|
|
223
|
-
}
|
|
224
|
-
} catch (err) {
|
|
225
|
-
console.warn(`Invalid log file: ${filepath}`);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
};
|
|
229
|
-
|
|
230
|
-
// src/processors/console-processor.ts
|
|
231
|
-
import { inspect as inspect2 } from "node:util";
|
|
232
|
-
import chalk2 from "chalk";
|
|
233
|
-
import { getPrototypeSpecificInstanceId, pickBy } from "@dxos/util";
|
|
234
|
-
|
|
235
|
-
// src/processors/common.ts
|
|
236
|
-
var getRelativeFilename = (filename) => {
|
|
237
|
-
const match = filename.match(/.+\/(packages\/.+\/.+)/);
|
|
238
|
-
if (match) {
|
|
239
|
-
const [, filePath] = match;
|
|
240
|
-
return filePath;
|
|
241
|
-
}
|
|
242
|
-
return filename;
|
|
243
|
-
};
|
|
244
|
-
|
|
245
|
-
// src/processors/console-processor.ts
|
|
246
|
-
var LEVEL_COLORS = {
|
|
247
|
-
[LogLevel.TRACE]: "gray",
|
|
248
|
-
[LogLevel.DEBUG]: "gray",
|
|
249
|
-
[LogLevel.VERBOSE]: "gray",
|
|
250
|
-
[LogLevel.INFO]: "white",
|
|
251
|
-
[LogLevel.WARN]: "yellow",
|
|
252
|
-
[LogLevel.ERROR]: "red"
|
|
253
|
-
};
|
|
254
|
-
var truncate = (text, length = 0, right = false) => {
|
|
255
|
-
const str = text && length ? right ? text.slice(-length) : text.substring(0, length) : text ?? "";
|
|
256
|
-
return right ? str.padStart(length, " ") : str.padEnd(length, " ");
|
|
257
|
-
};
|
|
258
|
-
var DEFAULT_FORMATTER = (config, { path, line, level, message, context, error, scope }) => {
|
|
259
|
-
const column = config.options?.formatter?.column;
|
|
260
|
-
const filepath = path !== void 0 && line !== void 0 ? chalk2.grey(`${path}:${line}`) : void 0;
|
|
261
|
-
let instance;
|
|
262
|
-
if (scope) {
|
|
263
|
-
const prototype = Object.getPrototypeOf(scope);
|
|
264
|
-
if (prototype !== null) {
|
|
265
|
-
const id = getPrototypeSpecificInstanceId(scope);
|
|
266
|
-
instance = chalk2.magentaBright(`${prototype.constructor.name}#${id}`);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
const formattedTimestamp = config.options?.formatter?.timestamp ? (/* @__PURE__ */ new Date()).toISOString() : void 0;
|
|
270
|
-
const formattedLevel = chalk2[LEVEL_COLORS[level]](column ? shortLevelName[level] : LogLevel[level]);
|
|
271
|
-
const padding = column && filepath ? "".padStart(column - filepath.length) : void 0;
|
|
272
|
-
return config.options?.formatter?.timestampFirst ? [
|
|
273
|
-
formattedTimestamp,
|
|
274
|
-
filepath,
|
|
275
|
-
padding,
|
|
276
|
-
formattedLevel,
|
|
277
|
-
instance,
|
|
278
|
-
message,
|
|
279
|
-
context,
|
|
280
|
-
error
|
|
281
|
-
] : [
|
|
282
|
-
// NOTE: File path must come fist for console hyperlinks.
|
|
283
|
-
// Must not truncate for terminal output.
|
|
284
|
-
filepath,
|
|
285
|
-
padding,
|
|
286
|
-
formattedTimestamp,
|
|
287
|
-
formattedLevel,
|
|
288
|
-
instance,
|
|
289
|
-
message,
|
|
290
|
-
context,
|
|
291
|
-
error
|
|
292
|
-
];
|
|
293
|
-
};
|
|
294
|
-
var SHORT_FORMATTER = (config, { path, level, message }) => {
|
|
295
|
-
return [
|
|
296
|
-
chalk2.grey(truncate(path, 16, true)),
|
|
297
|
-
chalk2[LEVEL_COLORS[level]](shortLevelName[level]),
|
|
298
|
-
message
|
|
299
|
-
];
|
|
300
|
-
};
|
|
301
|
-
var formatter = DEFAULT_FORMATTER;
|
|
302
|
-
var CONSOLE_PROCESSOR = (config, entry) => {
|
|
303
|
-
const { level, message, meta, error } = entry;
|
|
304
|
-
if (!shouldLog(entry, config.filters)) {
|
|
305
|
-
return;
|
|
306
|
-
}
|
|
307
|
-
const parts = {
|
|
308
|
-
level,
|
|
309
|
-
message,
|
|
310
|
-
error,
|
|
311
|
-
path: void 0,
|
|
312
|
-
line: void 0,
|
|
313
|
-
scope: void 0,
|
|
314
|
-
context: void 0
|
|
315
|
-
};
|
|
316
|
-
if (meta) {
|
|
317
|
-
parts.path = getRelativeFilename(meta.F);
|
|
318
|
-
parts.line = meta.L;
|
|
319
|
-
parts.scope = meta.S;
|
|
320
|
-
}
|
|
321
|
-
const context = getContextFromEntry(entry);
|
|
322
|
-
if (context) {
|
|
323
|
-
parts.context = inspect2(pickBy(context, (value) => value !== void 0), {
|
|
324
|
-
depth: config.options.depth,
|
|
325
|
-
colors: true,
|
|
326
|
-
maxArrayLength: 8,
|
|
327
|
-
sorted: false
|
|
328
|
-
});
|
|
329
|
-
}
|
|
330
|
-
const line = formatter(config, parts).filter(Boolean).join(" ");
|
|
331
|
-
console.log(line);
|
|
332
|
-
};
|
|
158
|
+
// src/platform/index.ts
|
|
159
|
+
var platform_exports = {};
|
|
160
|
+
__reExport(platform_exports, platform_star);
|
|
161
|
+
import * as platform_star from "#platform";
|
|
333
162
|
|
|
334
|
-
// src/processors/
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
163
|
+
// src/processors/index.ts
|
|
164
|
+
var processors_exports = {};
|
|
165
|
+
__export(processors_exports, {
|
|
166
|
+
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
167
|
+
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
168
|
+
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
169
|
+
createFileProcessor: () => createFileProcessor,
|
|
170
|
+
getRelativeFilename: () => getRelativeFilename
|
|
171
|
+
});
|
|
339
172
|
|
|
340
173
|
// src/processors/browser-processor.ts
|
|
341
174
|
import { getDebugName, safariCheck } from "@dxos/util";
|
|
@@ -377,6 +210,8 @@ var APP_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
377
210
|
if (context) {
|
|
378
211
|
if (Object.keys(context).length === 1 && "error" in context) {
|
|
379
212
|
args.push(context.error);
|
|
213
|
+
} else if (Object.keys(context).length === 1 && "err" in context) {
|
|
214
|
+
args.push(context.err);
|
|
380
215
|
} else {
|
|
381
216
|
args.push(context);
|
|
382
217
|
}
|
|
@@ -442,6 +277,16 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
442
277
|
};
|
|
443
278
|
var BROWSER_PROCESSOR = CONFIG.useTestProcessor ? TEST_BROWSER_PROCESSOR : APP_BROWSER_PROCESSOR;
|
|
444
279
|
|
|
280
|
+
// src/processors/index.ts
|
|
281
|
+
__reExport(processors_exports, console_processor_star);
|
|
282
|
+
import * as console_processor_star from "#console-processor";
|
|
283
|
+
|
|
284
|
+
// src/processors/debug-processor.ts
|
|
285
|
+
import { inspect as inspect2 } from "node:util";
|
|
286
|
+
var DEBUG_PROCESSOR = (config, entry) => {
|
|
287
|
+
console.log(inspect2(entry, false, null, true));
|
|
288
|
+
};
|
|
289
|
+
|
|
445
290
|
// src/processors/file-processor.ts
|
|
446
291
|
import { appendFileSync, mkdirSync, openSync } from "node:fs";
|
|
447
292
|
import { dirname } from "node:path";
|
|
@@ -498,7 +343,7 @@ var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
|
498
343
|
};
|
|
499
344
|
var logFilePath;
|
|
500
345
|
var getLogFilePath = () => {
|
|
501
|
-
logFilePath
|
|
346
|
+
logFilePath ??= process.env.LOG_FILE ?? (process.env.HOME ? `${process.env.HOME}/.dxlog/${(/* @__PURE__ */ new Date()).toISOString()}.log` : void 0);
|
|
502
347
|
return logFilePath;
|
|
503
348
|
};
|
|
504
349
|
var FILE_PROCESSOR = createFileProcessor({
|
|
@@ -513,14 +358,15 @@ var FILE_PROCESSOR = createFileProcessor({
|
|
|
513
358
|
|
|
514
359
|
// src/options.ts
|
|
515
360
|
var processors = {
|
|
516
|
-
[LogProcessorType.CONSOLE]: CONSOLE_PROCESSOR,
|
|
361
|
+
[LogProcessorType.CONSOLE]: processors_exports.CONSOLE_PROCESSOR,
|
|
517
362
|
[LogProcessorType.BROWSER]: BROWSER_PROCESSOR,
|
|
518
363
|
[LogProcessorType.DEBUG]: DEBUG_PROCESSOR
|
|
519
364
|
};
|
|
520
|
-
var
|
|
365
|
+
var browser = (typeof window !== "undefined" || typeof navigator !== "undefined") && !(typeof process !== "undefined" && process?.env?.VITEST);
|
|
521
366
|
var DEFAULT_PROCESSORS = [
|
|
522
|
-
|
|
367
|
+
browser ? BROWSER_PROCESSOR : processors_exports.CONSOLE_PROCESSOR
|
|
523
368
|
];
|
|
369
|
+
var parseLogLevel = (level, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;
|
|
524
370
|
var parseFilter = (filter) => {
|
|
525
371
|
if (typeof filter === "number") {
|
|
526
372
|
return [
|
|
@@ -529,7 +375,6 @@ var parseFilter = (filter) => {
|
|
|
529
375
|
}
|
|
530
376
|
];
|
|
531
377
|
}
|
|
532
|
-
const parseLogLevel = (level, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;
|
|
533
378
|
const lines = typeof filter === "string" ? filter.split(/,\s*/) : filter;
|
|
534
379
|
return lines.map((filter2) => {
|
|
535
380
|
const [pattern, level] = filter2.split(":");
|
|
@@ -541,55 +386,37 @@ var parseFilter = (filter) => {
|
|
|
541
386
|
};
|
|
542
387
|
});
|
|
543
388
|
};
|
|
544
|
-
var
|
|
545
|
-
const
|
|
389
|
+
var createConfig = (options) => {
|
|
390
|
+
const envOptions = "process" in globalThis ? {
|
|
546
391
|
file: process.env.LOG_CONFIG,
|
|
547
392
|
filter: process.env.LOG_FILTER,
|
|
548
393
|
processor: process.env.LOG_PROCESSOR
|
|
549
394
|
} : void 0;
|
|
550
|
-
const mergedOptions = defaultsDeep({}, loadOptions(
|
|
395
|
+
const mergedOptions = defaultsDeep({}, (0, platform_exports.loadOptions)(envOptions?.file), envOptions, options);
|
|
551
396
|
return {
|
|
552
397
|
options: mergedOptions,
|
|
553
398
|
filters: parseFilter(mergedOptions.filter ?? LogLevel.INFO),
|
|
554
399
|
captureFilters: parseFilter(mergedOptions.captureFilter ?? LogLevel.WARN),
|
|
555
400
|
processors: mergedOptions.processor ? [
|
|
556
401
|
processors[mergedOptions.processor]
|
|
557
|
-
] :
|
|
402
|
+
] : [
|
|
403
|
+
...DEFAULT_PROCESSORS
|
|
404
|
+
],
|
|
558
405
|
prefix: mergedOptions.prefix
|
|
559
406
|
};
|
|
560
407
|
};
|
|
561
408
|
|
|
562
409
|
// src/log.ts
|
|
563
|
-
var
|
|
410
|
+
var logCount = 0;
|
|
564
411
|
var createLog = () => {
|
|
565
412
|
const log2 = (...params) => processLog(LogLevel.DEBUG, ...params);
|
|
566
|
-
log2
|
|
413
|
+
Object.assign(log2, {
|
|
414
|
+
_id: `log-${++logCount}`,
|
|
415
|
+
_config: createConfig()
|
|
416
|
+
});
|
|
567
417
|
Object.defineProperty(log2, "runtimeConfig", {
|
|
568
418
|
get: () => log2._config
|
|
569
419
|
});
|
|
570
|
-
log2.addProcessor = (processor) => {
|
|
571
|
-
if (DEFAULT_PROCESSORS.filter((p) => p === processor).length === 0) {
|
|
572
|
-
DEFAULT_PROCESSORS.push(processor);
|
|
573
|
-
}
|
|
574
|
-
if (log2._config.processors.filter((p) => p === processor).length === 0) {
|
|
575
|
-
log2._config.processors.push(processor);
|
|
576
|
-
}
|
|
577
|
-
};
|
|
578
|
-
log2.config = (options) => {
|
|
579
|
-
log2._config = getConfig(options);
|
|
580
|
-
};
|
|
581
|
-
log2.trace = (...params) => processLog(LogLevel.TRACE, ...params);
|
|
582
|
-
log2.debug = (...params) => processLog(LogLevel.DEBUG, ...params);
|
|
583
|
-
log2.verbose = (...params) => processLog(LogLevel.VERBOSE, ...params);
|
|
584
|
-
log2.info = (...params) => processLog(LogLevel.INFO, ...params);
|
|
585
|
-
log2.warn = (...params) => processLog(LogLevel.WARN, ...params);
|
|
586
|
-
log2.error = (...params) => processLog(LogLevel.ERROR, ...params);
|
|
587
|
-
log2.catch = (error, context, meta) => processLog(LogLevel.ERROR, void 0, context, meta, error);
|
|
588
|
-
log2.break = () => log2.info("\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014");
|
|
589
|
-
log2.stack = (message, context, meta) => processLog(LogLevel.INFO, `${message ?? "Stack Dump"}
|
|
590
|
-
${getFormattedStackTrace()}`, context, meta);
|
|
591
|
-
log2.method = createMethodLogDecorator(log2);
|
|
592
|
-
log2.func = createFunctionLogDecorator(log2);
|
|
593
420
|
const processLog = (level, message, context = {}, meta, error) => {
|
|
594
421
|
log2._config.processors.forEach((processor) => processor(log2._config, {
|
|
595
422
|
level,
|
|
@@ -599,9 +426,50 @@ ${getFormattedStackTrace()}`, context, meta);
|
|
|
599
426
|
error
|
|
600
427
|
}));
|
|
601
428
|
};
|
|
429
|
+
Object.assign(log2, {
|
|
430
|
+
/**
|
|
431
|
+
* Update config.
|
|
432
|
+
* NOTE: Preserves any processors that were already added to this logger instance
|
|
433
|
+
* unless an explicit processor option is provided.
|
|
434
|
+
*/
|
|
435
|
+
config: ({ processor, ...options }) => {
|
|
436
|
+
const config = createConfig(options);
|
|
437
|
+
const processors2 = processor ? config.processors : log2._config.processors;
|
|
438
|
+
log2._config = {
|
|
439
|
+
...config,
|
|
440
|
+
processors: processors2
|
|
441
|
+
};
|
|
442
|
+
return log2;
|
|
443
|
+
},
|
|
444
|
+
/**
|
|
445
|
+
* Adds a processor to the logger.
|
|
446
|
+
*/
|
|
447
|
+
addProcessor: (processor) => {
|
|
448
|
+
if (log2._config.processors.filter((p) => p === processor).length === 0) {
|
|
449
|
+
log2._config.processors.push(processor);
|
|
450
|
+
}
|
|
451
|
+
return () => {
|
|
452
|
+
log2._config.processors = log2._config.processors.filter((p) => p !== processor);
|
|
453
|
+
};
|
|
454
|
+
},
|
|
455
|
+
trace: (...params) => processLog(LogLevel.TRACE, ...params),
|
|
456
|
+
debug: (...params) => processLog(LogLevel.DEBUG, ...params),
|
|
457
|
+
verbose: (...params) => processLog(LogLevel.VERBOSE, ...params),
|
|
458
|
+
info: (...params) => processLog(LogLevel.INFO, ...params),
|
|
459
|
+
warn: (...params) => processLog(LogLevel.WARN, ...params),
|
|
460
|
+
error: (...params) => processLog(LogLevel.ERROR, ...params),
|
|
461
|
+
catch: (error, context, meta) => processLog(LogLevel.ERROR, void 0, context, meta, error),
|
|
462
|
+
method: createMethodLogDecorator(log2),
|
|
463
|
+
function: createFunctionLogDecorator(log2),
|
|
464
|
+
break: () => log2.info("-".repeat(80)),
|
|
465
|
+
stack: (message, context, meta) => {
|
|
466
|
+
return processLog(LogLevel.INFO, `${message ?? "Stack Dump"}
|
|
467
|
+
${getFormattedStackTrace()}`, context, meta);
|
|
468
|
+
}
|
|
469
|
+
});
|
|
602
470
|
return log2;
|
|
603
471
|
};
|
|
604
|
-
var log =
|
|
472
|
+
var log = globalThis.DX_LOG ??= createLog();
|
|
605
473
|
var start = Date.now();
|
|
606
474
|
var last = start;
|
|
607
475
|
var debug = (label, args) => {
|
|
@@ -618,26 +486,32 @@ var debug = (label, args) => {
|
|
|
618
486
|
};
|
|
619
487
|
var getFormattedStackTrace = () => new Error().stack.split("\n").slice(3).join("\n");
|
|
620
488
|
|
|
621
|
-
// src/
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
configurable: true,
|
|
629
|
-
writable: true
|
|
630
|
-
});
|
|
489
|
+
// src/index.ts
|
|
490
|
+
__reExport(index_exports, processors_exports);
|
|
491
|
+
|
|
492
|
+
// src/dbg.ts
|
|
493
|
+
var dbg = (arg, meta) => {
|
|
494
|
+
if (meta?.A) {
|
|
495
|
+
console.log(`${meta.A[0]} =`, arg);
|
|
631
496
|
} else {
|
|
632
|
-
|
|
497
|
+
console.log(arg);
|
|
633
498
|
}
|
|
634
|
-
return
|
|
635
|
-
}
|
|
499
|
+
return arg;
|
|
500
|
+
};
|
|
501
|
+
|
|
502
|
+
// src/experimental/ownership.ts
|
|
503
|
+
import { inspect as inspect3 } from "node:util";
|
|
636
504
|
var kOwnershipScope = Symbol("kOwnershipScope");
|
|
637
505
|
var kCurrentOwnershipScope = Symbol("kCurrentOwnershipScope");
|
|
638
506
|
var kDebugInfoProperties = Symbol("kDebugInfoProperties");
|
|
639
|
-
var _inspect_custom = inspect4.custom;
|
|
640
507
|
var OwnershipScope = class {
|
|
508
|
+
constr;
|
|
509
|
+
parent;
|
|
510
|
+
instance;
|
|
511
|
+
constructor(constr, parent) {
|
|
512
|
+
this.constr = constr;
|
|
513
|
+
this.parent = parent;
|
|
514
|
+
}
|
|
641
515
|
getInfo() {
|
|
642
516
|
if (!this.instance) {
|
|
643
517
|
return {};
|
|
@@ -649,32 +523,24 @@ var OwnershipScope = class {
|
|
|
649
523
|
}
|
|
650
524
|
return info;
|
|
651
525
|
}
|
|
652
|
-
[
|
|
526
|
+
[inspect3.custom]() {
|
|
653
527
|
return {
|
|
654
528
|
className: this.constr.name,
|
|
655
529
|
info: this.getInfo(),
|
|
656
530
|
parent: this.parent
|
|
657
531
|
};
|
|
658
532
|
}
|
|
659
|
-
constructor(constr, parent) {
|
|
660
|
-
_define_property(this, "constr", void 0);
|
|
661
|
-
_define_property(this, "parent", void 0);
|
|
662
|
-
_define_property(this, "instance", void 0);
|
|
663
|
-
this.constr = constr;
|
|
664
|
-
this.parent = parent;
|
|
665
|
-
}
|
|
666
533
|
};
|
|
667
534
|
var getCurrentOwnershipScope = (thisRef) => thisRef;
|
|
668
535
|
export {
|
|
669
536
|
BROWSER_PROCESSOR,
|
|
670
|
-
CONSOLE_PROCESSOR,
|
|
671
537
|
DEBUG_PROCESSOR,
|
|
672
|
-
DEFAULT_FORMATTER,
|
|
673
538
|
FILE_PROCESSOR,
|
|
674
539
|
LogLevel,
|
|
675
540
|
LogProcessorType,
|
|
676
|
-
SHORT_FORMATTER,
|
|
677
541
|
createFileProcessor,
|
|
542
|
+
createLog,
|
|
543
|
+
dbg,
|
|
678
544
|
debug,
|
|
679
545
|
gatherLogInfoFromScope,
|
|
680
546
|
getContextFromEntry,
|
|
@@ -687,7 +553,6 @@ export {
|
|
|
687
553
|
parseFilter,
|
|
688
554
|
pick,
|
|
689
555
|
shortLevelName,
|
|
690
|
-
shouldLog
|
|
691
|
-
truncate
|
|
556
|
+
shouldLog
|
|
692
557
|
};
|
|
693
558
|
//# sourceMappingURL=index.mjs.map
|