@dxos/log 0.8.4-main.406dc2a → 0.8.4-main.59c2e9b
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 +139 -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 +135 -284
- 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/decorators.d.ts +1 -1
- package/dist/types/src/decorators.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/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/decorators.ts +3 -3
- 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/file-processor.ts +2 -0
- package/src/processors/index.ts +3 -3
|
@@ -1,104 +1,47 @@
|
|
|
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
|
+
debug: () => debug,
|
|
29
|
+
gatherLogInfoFromScope: () => gatherLogInfoFromScope,
|
|
30
|
+
getContextFromEntry: () => getContextFromEntry,
|
|
31
|
+
getCurrentOwnershipScope: () => getCurrentOwnershipScope,
|
|
32
|
+
getRelativeFilename: () => getRelativeFilename,
|
|
33
|
+
levels: () => levels,
|
|
34
|
+
log: () => log,
|
|
35
|
+
logInfo: () => logInfo,
|
|
36
|
+
omit: () => omit,
|
|
37
|
+
parseFilter: () => parseFilter,
|
|
38
|
+
pick: () => pick,
|
|
39
|
+
shortLevelName: () => shortLevelName,
|
|
40
|
+
shouldLog: () => shouldLog
|
|
41
|
+
});
|
|
4
42
|
import omit from "lodash.omit";
|
|
5
43
|
import { pick } from "@dxos/util";
|
|
6
44
|
|
|
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
45
|
// src/decorators.ts
|
|
103
46
|
import { inspect } from "node:util";
|
|
104
47
|
import chalk from "chalk";
|
|
@@ -198,144 +141,33 @@ var logAsyncResolved = (log2, methodName, resolvedValue, promiseId, startTime, c
|
|
|
198
141
|
var logAsyncRejected = (log2, methodName, err, promiseId, startTime, combinedMeta) => {
|
|
199
142
|
log2.info(`.${formatFunction(methodName)} \u21B2 \u{1F525} ${chalk.gray("reject")} ${formatPromise(promiseId)} ${formatTimeElapsed(startTime)} ${chalk.gray("=>")} ${err}`, {}, combinedMeta);
|
|
200
143
|
};
|
|
201
|
-
var greenCheck = typeof chalk.green === "function" ? chalk.green("\u2714") : "\u2714";
|
|
202
|
-
var formatTimeElapsed = (startTime) => chalk.gray(`${(performance.now() - startTime).toFixed(0)}ms`);
|
|
203
144
|
var COLOR_FUNCTION = [
|
|
204
145
|
220,
|
|
205
146
|
220,
|
|
206
147
|
170
|
|
207
148
|
];
|
|
149
|
+
var greenCheck = typeof chalk.green === "function" ? chalk.green("\u2714") : "\u2714";
|
|
150
|
+
var formatTimeElapsed = (startTime) => chalk.gray(`${(performance.now() - startTime).toFixed(0)}ms`);
|
|
208
151
|
var formatFunction = (name) => chalk.bold(chalk.rgb(...COLOR_FUNCTION)(name));
|
|
209
152
|
var formatPromise = (id) => chalk.blue(`Promise#${id}`);
|
|
210
153
|
|
|
211
154
|
// src/options.ts
|
|
212
155
|
import defaultsDeep from "lodash.defaultsdeep";
|
|
213
156
|
|
|
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
|
-
};
|
|
157
|
+
// src/platform/index.ts
|
|
158
|
+
var platform_exports = {};
|
|
159
|
+
__reExport(platform_exports, platform_star);
|
|
160
|
+
import * as platform_star from "#platform";
|
|
333
161
|
|
|
334
|
-
// src/processors/
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
162
|
+
// src/processors/index.ts
|
|
163
|
+
var processors_exports = {};
|
|
164
|
+
__export(processors_exports, {
|
|
165
|
+
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
166
|
+
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
167
|
+
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
168
|
+
createFileProcessor: () => createFileProcessor,
|
|
169
|
+
getRelativeFilename: () => getRelativeFilename
|
|
170
|
+
});
|
|
339
171
|
|
|
340
172
|
// src/processors/browser-processor.ts
|
|
341
173
|
import { getDebugName, safariCheck } from "@dxos/util";
|
|
@@ -444,6 +276,16 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
444
276
|
};
|
|
445
277
|
var BROWSER_PROCESSOR = CONFIG.useTestProcessor ? TEST_BROWSER_PROCESSOR : APP_BROWSER_PROCESSOR;
|
|
446
278
|
|
|
279
|
+
// src/processors/index.ts
|
|
280
|
+
__reExport(processors_exports, console_processor_star);
|
|
281
|
+
import * as console_processor_star from "#console-processor";
|
|
282
|
+
|
|
283
|
+
// src/processors/debug-processor.ts
|
|
284
|
+
import { inspect as inspect2 } from "node:util";
|
|
285
|
+
var DEBUG_PROCESSOR = (config, entry) => {
|
|
286
|
+
console.log(inspect2(entry, false, null, true));
|
|
287
|
+
};
|
|
288
|
+
|
|
447
289
|
// src/processors/file-processor.ts
|
|
448
290
|
import { appendFileSync, mkdirSync, openSync } from "node:fs";
|
|
449
291
|
import { dirname } from "node:path";
|
|
@@ -500,7 +342,7 @@ var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
|
500
342
|
};
|
|
501
343
|
var logFilePath;
|
|
502
344
|
var getLogFilePath = () => {
|
|
503
|
-
logFilePath
|
|
345
|
+
logFilePath ??= process.env.LOG_FILE ?? (process.env.HOME ? `${process.env.HOME}/.dxlog/${(/* @__PURE__ */ new Date()).toISOString()}.log` : void 0);
|
|
504
346
|
return logFilePath;
|
|
505
347
|
};
|
|
506
348
|
var FILE_PROCESSOR = createFileProcessor({
|
|
@@ -515,14 +357,15 @@ var FILE_PROCESSOR = createFileProcessor({
|
|
|
515
357
|
|
|
516
358
|
// src/options.ts
|
|
517
359
|
var processors = {
|
|
518
|
-
[LogProcessorType.CONSOLE]: CONSOLE_PROCESSOR,
|
|
360
|
+
[LogProcessorType.CONSOLE]: processors_exports.CONSOLE_PROCESSOR,
|
|
519
361
|
[LogProcessorType.BROWSER]: BROWSER_PROCESSOR,
|
|
520
362
|
[LogProcessorType.DEBUG]: DEBUG_PROCESSOR
|
|
521
363
|
};
|
|
522
|
-
var
|
|
364
|
+
var browser = (typeof window !== "undefined" || typeof navigator !== "undefined") && !(typeof process !== "undefined" && process?.env?.VITEST);
|
|
523
365
|
var DEFAULT_PROCESSORS = [
|
|
524
|
-
|
|
366
|
+
browser ? BROWSER_PROCESSOR : processors_exports.CONSOLE_PROCESSOR
|
|
525
367
|
];
|
|
368
|
+
var parseLogLevel = (level, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;
|
|
526
369
|
var parseFilter = (filter) => {
|
|
527
370
|
if (typeof filter === "number") {
|
|
528
371
|
return [
|
|
@@ -531,7 +374,6 @@ var parseFilter = (filter) => {
|
|
|
531
374
|
}
|
|
532
375
|
];
|
|
533
376
|
}
|
|
534
|
-
const parseLogLevel = (level, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;
|
|
535
377
|
const lines = typeof filter === "string" ? filter.split(/,\s*/) : filter;
|
|
536
378
|
return lines.map((filter2) => {
|
|
537
379
|
const [pattern, level] = filter2.split(":");
|
|
@@ -543,55 +385,37 @@ var parseFilter = (filter) => {
|
|
|
543
385
|
};
|
|
544
386
|
});
|
|
545
387
|
};
|
|
546
|
-
var
|
|
547
|
-
const
|
|
388
|
+
var createConfig = (options) => {
|
|
389
|
+
const envOptions = "process" in globalThis ? {
|
|
548
390
|
file: process.env.LOG_CONFIG,
|
|
549
391
|
filter: process.env.LOG_FILTER,
|
|
550
392
|
processor: process.env.LOG_PROCESSOR
|
|
551
393
|
} : void 0;
|
|
552
|
-
const mergedOptions = defaultsDeep({}, loadOptions(
|
|
394
|
+
const mergedOptions = defaultsDeep({}, (0, platform_exports.loadOptions)(envOptions?.file), envOptions, options);
|
|
553
395
|
return {
|
|
554
396
|
options: mergedOptions,
|
|
555
397
|
filters: parseFilter(mergedOptions.filter ?? LogLevel.INFO),
|
|
556
398
|
captureFilters: parseFilter(mergedOptions.captureFilter ?? LogLevel.WARN),
|
|
557
399
|
processors: mergedOptions.processor ? [
|
|
558
400
|
processors[mergedOptions.processor]
|
|
559
|
-
] :
|
|
401
|
+
] : [
|
|
402
|
+
...DEFAULT_PROCESSORS
|
|
403
|
+
],
|
|
560
404
|
prefix: mergedOptions.prefix
|
|
561
405
|
};
|
|
562
406
|
};
|
|
563
407
|
|
|
564
408
|
// src/log.ts
|
|
565
|
-
var
|
|
409
|
+
var logCount = 0;
|
|
566
410
|
var createLog = () => {
|
|
567
411
|
const log2 = (...params) => processLog(LogLevel.DEBUG, ...params);
|
|
568
|
-
log2
|
|
412
|
+
Object.assign(log2, {
|
|
413
|
+
_id: `log-${++logCount}`,
|
|
414
|
+
_config: createConfig()
|
|
415
|
+
});
|
|
569
416
|
Object.defineProperty(log2, "runtimeConfig", {
|
|
570
417
|
get: () => log2._config
|
|
571
418
|
});
|
|
572
|
-
log2.addProcessor = (processor) => {
|
|
573
|
-
if (DEFAULT_PROCESSORS.filter((p) => p === processor).length === 0) {
|
|
574
|
-
DEFAULT_PROCESSORS.push(processor);
|
|
575
|
-
}
|
|
576
|
-
if (log2._config.processors.filter((p) => p === processor).length === 0) {
|
|
577
|
-
log2._config.processors.push(processor);
|
|
578
|
-
}
|
|
579
|
-
};
|
|
580
|
-
log2.config = (options) => {
|
|
581
|
-
log2._config = getConfig(options);
|
|
582
|
-
};
|
|
583
|
-
log2.trace = (...params) => processLog(LogLevel.TRACE, ...params);
|
|
584
|
-
log2.debug = (...params) => processLog(LogLevel.DEBUG, ...params);
|
|
585
|
-
log2.verbose = (...params) => processLog(LogLevel.VERBOSE, ...params);
|
|
586
|
-
log2.info = (...params) => processLog(LogLevel.INFO, ...params);
|
|
587
|
-
log2.warn = (...params) => processLog(LogLevel.WARN, ...params);
|
|
588
|
-
log2.error = (...params) => processLog(LogLevel.ERROR, ...params);
|
|
589
|
-
log2.catch = (error, context, meta) => processLog(LogLevel.ERROR, void 0, context, meta, error);
|
|
590
|
-
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");
|
|
591
|
-
log2.stack = (message, context, meta) => processLog(LogLevel.INFO, `${message ?? "Stack Dump"}
|
|
592
|
-
${getFormattedStackTrace()}`, context, meta);
|
|
593
|
-
log2.method = createMethodLogDecorator(log2);
|
|
594
|
-
log2.func = createFunctionLogDecorator(log2);
|
|
595
419
|
const processLog = (level, message, context = {}, meta, error) => {
|
|
596
420
|
log2._config.processors.forEach((processor) => processor(log2._config, {
|
|
597
421
|
level,
|
|
@@ -601,9 +425,50 @@ ${getFormattedStackTrace()}`, context, meta);
|
|
|
601
425
|
error
|
|
602
426
|
}));
|
|
603
427
|
};
|
|
428
|
+
Object.assign(log2, {
|
|
429
|
+
/**
|
|
430
|
+
* Update config.
|
|
431
|
+
* NOTE: Preserves any processors that were already added to this logger instance
|
|
432
|
+
* unless an explicit processor option is provided.
|
|
433
|
+
*/
|
|
434
|
+
config: ({ processor, ...options }) => {
|
|
435
|
+
const config = createConfig(options);
|
|
436
|
+
const processors2 = processor ? config.processors : log2._config.processors;
|
|
437
|
+
log2._config = {
|
|
438
|
+
...config,
|
|
439
|
+
processors: processors2
|
|
440
|
+
};
|
|
441
|
+
return log2;
|
|
442
|
+
},
|
|
443
|
+
/**
|
|
444
|
+
* Adds a processor to the logger.
|
|
445
|
+
*/
|
|
446
|
+
addProcessor: (processor) => {
|
|
447
|
+
if (log2._config.processors.filter((p) => p === processor).length === 0) {
|
|
448
|
+
log2._config.processors.push(processor);
|
|
449
|
+
}
|
|
450
|
+
return () => {
|
|
451
|
+
log2._config.processors = log2._config.processors.filter((p) => p !== processor);
|
|
452
|
+
};
|
|
453
|
+
},
|
|
454
|
+
trace: (...params) => processLog(LogLevel.TRACE, ...params),
|
|
455
|
+
debug: (...params) => processLog(LogLevel.DEBUG, ...params),
|
|
456
|
+
verbose: (...params) => processLog(LogLevel.VERBOSE, ...params),
|
|
457
|
+
info: (...params) => processLog(LogLevel.INFO, ...params),
|
|
458
|
+
warn: (...params) => processLog(LogLevel.WARN, ...params),
|
|
459
|
+
error: (...params) => processLog(LogLevel.ERROR, ...params),
|
|
460
|
+
catch: (error, context, meta) => processLog(LogLevel.ERROR, void 0, context, meta, error),
|
|
461
|
+
method: createMethodLogDecorator(log2),
|
|
462
|
+
function: createFunctionLogDecorator(log2),
|
|
463
|
+
break: () => log2.info("-".repeat(80)),
|
|
464
|
+
stack: (message, context, meta) => {
|
|
465
|
+
return processLog(LogLevel.INFO, `${message ?? "Stack Dump"}
|
|
466
|
+
${getFormattedStackTrace()}`, context, meta);
|
|
467
|
+
}
|
|
468
|
+
});
|
|
604
469
|
return log2;
|
|
605
470
|
};
|
|
606
|
-
var log =
|
|
471
|
+
var log = globalThis.DX_LOG ??= createLog();
|
|
607
472
|
var start = Date.now();
|
|
608
473
|
var last = start;
|
|
609
474
|
var debug = (label, args) => {
|
|
@@ -620,26 +485,22 @@ var debug = (label, args) => {
|
|
|
620
485
|
};
|
|
621
486
|
var getFormattedStackTrace = () => new Error().stack.split("\n").slice(3).join("\n");
|
|
622
487
|
|
|
488
|
+
// src/index.ts
|
|
489
|
+
__reExport(index_exports, processors_exports);
|
|
490
|
+
|
|
623
491
|
// src/experimental/ownership.ts
|
|
624
|
-
import { inspect as
|
|
625
|
-
function _define_property(obj, key, value) {
|
|
626
|
-
if (key in obj) {
|
|
627
|
-
Object.defineProperty(obj, key, {
|
|
628
|
-
value,
|
|
629
|
-
enumerable: true,
|
|
630
|
-
configurable: true,
|
|
631
|
-
writable: true
|
|
632
|
-
});
|
|
633
|
-
} else {
|
|
634
|
-
obj[key] = value;
|
|
635
|
-
}
|
|
636
|
-
return obj;
|
|
637
|
-
}
|
|
492
|
+
import { inspect as inspect3 } from "node:util";
|
|
638
493
|
var kOwnershipScope = Symbol("kOwnershipScope");
|
|
639
494
|
var kCurrentOwnershipScope = Symbol("kCurrentOwnershipScope");
|
|
640
495
|
var kDebugInfoProperties = Symbol("kDebugInfoProperties");
|
|
641
|
-
var _inspect_custom = inspect4.custom;
|
|
642
496
|
var OwnershipScope = class {
|
|
497
|
+
constr;
|
|
498
|
+
parent;
|
|
499
|
+
instance;
|
|
500
|
+
constructor(constr, parent) {
|
|
501
|
+
this.constr = constr;
|
|
502
|
+
this.parent = parent;
|
|
503
|
+
}
|
|
643
504
|
getInfo() {
|
|
644
505
|
if (!this.instance) {
|
|
645
506
|
return {};
|
|
@@ -651,32 +512,23 @@ var OwnershipScope = class {
|
|
|
651
512
|
}
|
|
652
513
|
return info;
|
|
653
514
|
}
|
|
654
|
-
[
|
|
515
|
+
[inspect3.custom]() {
|
|
655
516
|
return {
|
|
656
517
|
className: this.constr.name,
|
|
657
518
|
info: this.getInfo(),
|
|
658
519
|
parent: this.parent
|
|
659
520
|
};
|
|
660
521
|
}
|
|
661
|
-
constructor(constr, parent) {
|
|
662
|
-
_define_property(this, "constr", void 0);
|
|
663
|
-
_define_property(this, "parent", void 0);
|
|
664
|
-
_define_property(this, "instance", void 0);
|
|
665
|
-
this.constr = constr;
|
|
666
|
-
this.parent = parent;
|
|
667
|
-
}
|
|
668
522
|
};
|
|
669
523
|
var getCurrentOwnershipScope = (thisRef) => thisRef;
|
|
670
524
|
export {
|
|
671
525
|
BROWSER_PROCESSOR,
|
|
672
|
-
CONSOLE_PROCESSOR,
|
|
673
526
|
DEBUG_PROCESSOR,
|
|
674
|
-
DEFAULT_FORMATTER,
|
|
675
527
|
FILE_PROCESSOR,
|
|
676
528
|
LogLevel,
|
|
677
529
|
LogProcessorType,
|
|
678
|
-
SHORT_FORMATTER,
|
|
679
530
|
createFileProcessor,
|
|
531
|
+
createLog,
|
|
680
532
|
debug,
|
|
681
533
|
gatherLogInfoFromScope,
|
|
682
534
|
getContextFromEntry,
|
|
@@ -689,7 +541,6 @@ export {
|
|
|
689
541
|
parseFilter,
|
|
690
542
|
pick,
|
|
691
543
|
shortLevelName,
|
|
692
|
-
shouldLog
|
|
693
|
-
truncate
|
|
544
|
+
shouldLog
|
|
694
545
|
};
|
|
695
546
|
//# sourceMappingURL=index.mjs.map
|