@dxos/log 0.8.4-main.548089c → 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 +130 -176
- 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 +127 -260
- 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
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// src/config.ts
|
|
2
|
+
var LogLevel = /* @__PURE__ */ (function(LogLevel2) {
|
|
3
|
+
LogLevel2[LogLevel2["TRACE"] = 5] = "TRACE";
|
|
4
|
+
LogLevel2[LogLevel2["DEBUG"] = 10] = "DEBUG";
|
|
5
|
+
LogLevel2[LogLevel2["VERBOSE"] = 11] = "VERBOSE";
|
|
6
|
+
LogLevel2[LogLevel2["INFO"] = 12] = "INFO";
|
|
7
|
+
LogLevel2[LogLevel2["WARN"] = 13] = "WARN";
|
|
8
|
+
LogLevel2[LogLevel2["ERROR"] = 14] = "ERROR";
|
|
9
|
+
return LogLevel2;
|
|
10
|
+
})({});
|
|
11
|
+
var levels = {
|
|
12
|
+
"*": 5,
|
|
13
|
+
trace: 5,
|
|
14
|
+
debug: 10,
|
|
15
|
+
verbose: 11,
|
|
16
|
+
info: 12,
|
|
17
|
+
warn: 13,
|
|
18
|
+
error: 14
|
|
19
|
+
};
|
|
20
|
+
var shortLevelName = {
|
|
21
|
+
[5]: "T",
|
|
22
|
+
[10]: "D",
|
|
23
|
+
[11]: "V",
|
|
24
|
+
[12]: "I",
|
|
25
|
+
[13]: "W",
|
|
26
|
+
[14]: "E"
|
|
27
|
+
};
|
|
28
|
+
var LogProcessorType = /* @__PURE__ */ (function(LogProcessorType2) {
|
|
29
|
+
LogProcessorType2["CONSOLE"] = "console";
|
|
30
|
+
LogProcessorType2["BROWSER"] = "browser";
|
|
31
|
+
LogProcessorType2["DEBUG"] = "debug";
|
|
32
|
+
return LogProcessorType2;
|
|
33
|
+
})({});
|
|
34
|
+
|
|
35
|
+
// src/scope.ts
|
|
36
|
+
var logInfoProperties = Symbol("logInfoProperties");
|
|
37
|
+
var logInfo = (target, propertyKey, descriptor) => {
|
|
38
|
+
(target[logInfoProperties] ??= []).push(propertyKey);
|
|
39
|
+
};
|
|
40
|
+
var gatherLogInfoFromScope = (scope) => {
|
|
41
|
+
if (!scope) {
|
|
42
|
+
return {};
|
|
43
|
+
}
|
|
44
|
+
const res = {};
|
|
45
|
+
const prototype = Object.getPrototypeOf(scope);
|
|
46
|
+
const infoProps = (typeof prototype === "object" && prototype !== null ? prototype[logInfoProperties] : []) ?? [];
|
|
47
|
+
for (const prop of infoProps) {
|
|
48
|
+
try {
|
|
49
|
+
res[prop] = typeof scope[prop] === "function" ? scope[prop]() : scope[prop];
|
|
50
|
+
} catch (err) {
|
|
51
|
+
res[prop] = err.message;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return res;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// src/context.ts
|
|
58
|
+
var matchFilter = (filter, level, path) => {
|
|
59
|
+
if (filter.pattern?.startsWith("-")) {
|
|
60
|
+
if (path?.includes(filter.pattern.slice(1))) {
|
|
61
|
+
if (level >= filter.level) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
} else {
|
|
66
|
+
if (filter.pattern?.length) {
|
|
67
|
+
if (path?.includes(filter.pattern)) {
|
|
68
|
+
return level >= filter.level;
|
|
69
|
+
}
|
|
70
|
+
} else {
|
|
71
|
+
if (level >= filter.level) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
var shouldLog = (entry, filters) => {
|
|
78
|
+
if (filters === void 0) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
const results = filters.map((filter) => matchFilter(filter, entry.level, entry.meta?.F)).filter((result) => result !== void 0);
|
|
82
|
+
return results.length > 0 && !results.some((results2) => results2 === false);
|
|
83
|
+
};
|
|
84
|
+
var getContextFromEntry = (entry) => {
|
|
85
|
+
let context;
|
|
86
|
+
if (entry.meta) {
|
|
87
|
+
const scopeInfo = gatherLogInfoFromScope(entry.meta.S);
|
|
88
|
+
if (Object.keys(scopeInfo).length > 0) {
|
|
89
|
+
context = Object.assign(context ?? {}, scopeInfo);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const entryContext = typeof entry.context === "function" ? entry.context() : entry.context;
|
|
93
|
+
if (entryContext) {
|
|
94
|
+
if (entryContext instanceof Error) {
|
|
95
|
+
const c = entryContext.context;
|
|
96
|
+
context = Object.assign(context ?? {}, {
|
|
97
|
+
error: entryContext.stack,
|
|
98
|
+
...c
|
|
99
|
+
});
|
|
100
|
+
} else if (typeof entryContext === "object") {
|
|
101
|
+
context = Object.assign(context ?? {}, entryContext);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (entry.error) {
|
|
105
|
+
context = Object.assign(context ?? {}, {
|
|
106
|
+
error: entry.error
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return context && Object.keys(context).length > 0 ? context : void 0;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
// src/processors/common.ts
|
|
113
|
+
var getRelativeFilename = (filename) => {
|
|
114
|
+
const match = filename.match(/.+\/(packages\/.+\/.+)/);
|
|
115
|
+
if (match) {
|
|
116
|
+
const [, filePath] = match;
|
|
117
|
+
return filePath;
|
|
118
|
+
}
|
|
119
|
+
return filename;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export {
|
|
123
|
+
LogLevel,
|
|
124
|
+
levels,
|
|
125
|
+
shortLevelName,
|
|
126
|
+
LogProcessorType,
|
|
127
|
+
logInfo,
|
|
128
|
+
gatherLogInfoFromScope,
|
|
129
|
+
shouldLog,
|
|
130
|
+
getContextFromEntry,
|
|
131
|
+
getRelativeFilename
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=chunk-GPOFUMLO.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/config.ts", "../../../src/scope.ts", "../../../src/context.ts", "../../../src/processors/common.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nimport { type LogProcessor } from './context';\n\n/**\n * Standard levels.\n * NOTE: Keep aligned with LogLevel in @dxos/protocols.\n */\n// TODO(burdon): Update numbers?\nexport enum LogLevel {\n TRACE = 5,\n DEBUG = 10,\n VERBOSE = 11,\n INFO = 12,\n WARN = 13,\n ERROR = 14,\n}\n\nexport const levels: Record<string, LogLevel> = {\n '*': LogLevel.TRACE,\n trace: LogLevel.TRACE,\n debug: LogLevel.DEBUG,\n verbose: LogLevel.VERBOSE,\n info: LogLevel.INFO,\n warn: LogLevel.WARN,\n error: LogLevel.ERROR,\n};\n\nexport const shortLevelName = {\n [LogLevel.TRACE]: 'T',\n [LogLevel.DEBUG]: 'D',\n [LogLevel.VERBOSE]: 'V',\n [LogLevel.INFO]: 'I',\n [LogLevel.WARN]: 'W',\n [LogLevel.ERROR]: 'E',\n};\n\nexport enum LogProcessorType {\n CONSOLE = 'console',\n BROWSER = 'browser',\n DEBUG = 'debug',\n}\n\n/**\n * Individual filter condition.\n */\nexport type LogFilter = {\n level: LogLevel;\n pattern?: string;\n};\n\n/**\n * Options to set inline or load from the YML file.\n */\nexport type LogOptions = {\n file?: string;\n filter?: string | string[] | LogLevel;\n captureFilter?: string | string[] | LogLevel;\n depth?: number; // Context object depth.\n processor?: string | LogProcessorType;\n formatter?: {\n column: number;\n timestamp: boolean;\n timestampFirst: boolean;\n };\n prefix?: string;\n};\n\n/**\n * Runtime config.\n */\nexport interface LogConfig {\n options: LogOptions;\n filters?: LogFilter[];\n captureFilters?: LogFilter[];\n processors: LogProcessor[];\n prefix?: string;\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nconst logInfoProperties = Symbol('logInfoProperties');\n\n/**\n * Decorate fields, properties, or methods to automatically include their values in log messages.\n *\n * Example:\n *\n * ```typescript\n * class Example {\n * @logInfo\n * peerId: PublicKey;\n * }\n * ```\n */\nexport const logInfo = (target: any, propertyKey: string, descriptor?: PropertyDescriptor) => {\n // console.log(target, propertyKey, descriptor);\n (target[logInfoProperties] ??= []).push(propertyKey);\n};\n\n/**\n * Introspects class instance to find decorated metadata.\n * @param scope Class instance.\n */\nexport const gatherLogInfoFromScope = (scope: any): Record<string, any> => {\n if (!scope) {\n return {};\n }\n\n const res: Record<string, any> = {};\n\n const prototype = Object.getPrototypeOf(scope);\n const infoProps = (typeof prototype === 'object' && prototype !== null ? prototype[logInfoProperties] : []) ?? [];\n for (const prop of infoProps) {\n try {\n res[prop] = typeof scope[prop] === 'function' ? scope[prop]() : scope[prop];\n } catch (err: any) {\n res[prop] = err.message;\n }\n }\n\n return res;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport { type LogConfig, type LogFilter, type LogLevel } from './config';\nimport { type CallMetadata } from './meta';\nimport { gatherLogInfoFromScope } from './scope';\n\n/**\n * Optional object passed to the logging API.\n */\nexport type LogContext = Record<string, any> | Error | any;\n\n/**\n * Record for current log line.\n */\nexport interface LogEntry {\n level: LogLevel;\n message?: string;\n context?: LogContext;\n meta?: CallMetadata;\n error?: Error;\n}\n\n/**\n * Processes (e.g., prints, forwards) log entries.\n */\nexport type LogProcessor = (config: LogConfig, entry: LogEntry) => void;\n\n/**\n * Returns:\n * true if the log entry matches the filter,\n * false if should be excluded, or\n * undefined if it the filter doesn't match the level.\n */\nconst matchFilter = (filter: LogFilter, level: LogLevel, path?: string): boolean | undefined => {\n // TODO(burdon): Support regexp.\n if (filter.pattern?.startsWith('-')) {\n // Exclude.\n if (path?.includes(filter.pattern.slice(1))) {\n if (level >= filter.level) {\n return false;\n }\n }\n } else {\n // Include.\n if (filter.pattern?.length) {\n if (path?.includes(filter.pattern)) {\n return level >= filter.level;\n }\n } else {\n if (level >= filter.level) {\n return true;\n }\n }\n }\n};\n\n/**\n * Determines if the current line should be logged (called by the processor).\n */\nexport const shouldLog = (entry: LogEntry, filters?: LogFilter[]): boolean => {\n if (filters === undefined) {\n return false;\n }\n\n const results = filters\n .map((filter) => matchFilter(filter, entry.level, entry.meta?.F))\n .filter((result): result is boolean => result !== undefined);\n\n // Skip if any are explicitely false.\n // console.log({ level: entry.level, path: entry.meta?.F }, filters, results, results.length);\n return results.length > 0 && !results.some((results) => results === false);\n};\n\nexport const getContextFromEntry = (entry: LogEntry): Record<string, any> | undefined => {\n let context;\n if (entry.meta) {\n const scopeInfo = gatherLogInfoFromScope(entry.meta.S);\n if (Object.keys(scopeInfo).length > 0) {\n context = Object.assign(context ?? {}, scopeInfo);\n }\n }\n\n const entryContext = typeof entry.context === 'function' ? entry.context() : entry.context;\n if (entryContext) {\n if (entryContext instanceof Error) {\n // Additional context from Error.\n const c = (entryContext as any).context;\n // If ERROR then show stacktrace.\n context = Object.assign(context ?? {}, { error: entryContext.stack, ...c });\n } else if (typeof entryContext === 'object') {\n context = Object.assign(context ?? {}, entryContext);\n }\n }\n\n if (entry.error) {\n context = Object.assign(context ?? {}, { error: entry.error });\n }\n\n return context && Object.keys(context).length > 0 ? context : undefined;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport const getRelativeFilename = (filename: string) => {\n // TODO(burdon): Hack uses \"packages\" as an anchor (pre-parse NX?)\n // Including `packages/` part of the path so that excluded paths (e.g. from dist) are clickable in vscode.\n const match = filename.match(/.+\\/(packages\\/.+\\/.+)/);\n if (match) {\n const [, filePath] = match;\n return filePath;\n }\n\n return filename;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["LogLevel", "levels", "trace", "debug", "verbose", "info", "warn", "error", "shortLevelName", "LogProcessorType", "logInfoProperties", "Symbol", "logInfo", "target", "propertyKey", "descriptor", "push", "gatherLogInfoFromScope", "scope", "res", "prototype", "Object", "getPrototypeOf", "infoProps", "prop", "err", "message", "matchFilter", "filter", "level", "path", "pattern", "startsWith", "includes", "slice", "length", "shouldLog", "entry", "filters", "undefined", "results", "map", "meta", "F", "result", "some", "getContextFromEntry", "context", "scopeInfo", "gatherLogInfoFromScope", "S", "Object", "keys", "assign", "entryContext", "Error", "c", "error", "stack", "getRelativeFilename", "filename", "match", "filePath"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
|
+
|
|
19
|
+
export {
|
|
20
|
+
__export,
|
|
21
|
+
__reExport
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=chunk-IEP6GGEX.mjs.map
|
|
@@ -1,101 +1,46 @@
|
|
|
1
|
+
import {
|
|
2
|
+
LogLevel,
|
|
3
|
+
LogProcessorType,
|
|
4
|
+
gatherLogInfoFromScope,
|
|
5
|
+
getContextFromEntry,
|
|
6
|
+
getRelativeFilename,
|
|
7
|
+
levels,
|
|
8
|
+
logInfo,
|
|
9
|
+
shortLevelName,
|
|
10
|
+
shouldLog
|
|
11
|
+
} from "./chunk-GPOFUMLO.mjs";
|
|
12
|
+
import {
|
|
13
|
+
__export,
|
|
14
|
+
__reExport
|
|
15
|
+
} from "./chunk-IEP6GGEX.mjs";
|
|
16
|
+
|
|
1
17
|
// src/index.ts
|
|
18
|
+
var index_exports = {};
|
|
19
|
+
__export(index_exports, {
|
|
20
|
+
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
21
|
+
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
22
|
+
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
23
|
+
LogLevel: () => LogLevel,
|
|
24
|
+
LogProcessorType: () => LogProcessorType,
|
|
25
|
+
createFileProcessor: () => createFileProcessor,
|
|
26
|
+
createLog: () => createLog,
|
|
27
|
+
debug: () => debug,
|
|
28
|
+
gatherLogInfoFromScope: () => gatherLogInfoFromScope,
|
|
29
|
+
getContextFromEntry: () => getContextFromEntry,
|
|
30
|
+
getCurrentOwnershipScope: () => getCurrentOwnershipScope,
|
|
31
|
+
getRelativeFilename: () => getRelativeFilename,
|
|
32
|
+
levels: () => levels,
|
|
33
|
+
log: () => log,
|
|
34
|
+
logInfo: () => logInfo,
|
|
35
|
+
omit: () => omit,
|
|
36
|
+
parseFilter: () => parseFilter,
|
|
37
|
+
pick: () => pick,
|
|
38
|
+
shortLevelName: () => shortLevelName,
|
|
39
|
+
shouldLog: () => shouldLog
|
|
40
|
+
});
|
|
2
41
|
import omit from "lodash.omit";
|
|
3
42
|
import { pick } from "@dxos/util";
|
|
4
43
|
|
|
5
|
-
// src/config.ts
|
|
6
|
-
var LogLevel = /* @__PURE__ */ (function(LogLevel2) {
|
|
7
|
-
LogLevel2[LogLevel2["TRACE"] = 5] = "TRACE";
|
|
8
|
-
LogLevel2[LogLevel2["DEBUG"] = 10] = "DEBUG";
|
|
9
|
-
LogLevel2[LogLevel2["VERBOSE"] = 11] = "VERBOSE";
|
|
10
|
-
LogLevel2[LogLevel2["INFO"] = 12] = "INFO";
|
|
11
|
-
LogLevel2[LogLevel2["WARN"] = 13] = "WARN";
|
|
12
|
-
LogLevel2[LogLevel2["ERROR"] = 14] = "ERROR";
|
|
13
|
-
return LogLevel2;
|
|
14
|
-
})({});
|
|
15
|
-
var levels = {
|
|
16
|
-
trace: 5,
|
|
17
|
-
debug: 10,
|
|
18
|
-
verbose: 11,
|
|
19
|
-
info: 12,
|
|
20
|
-
warn: 13,
|
|
21
|
-
error: 14
|
|
22
|
-
};
|
|
23
|
-
var shortLevelName = {
|
|
24
|
-
[5]: "T",
|
|
25
|
-
[10]: "D",
|
|
26
|
-
[11]: "V",
|
|
27
|
-
[12]: "I",
|
|
28
|
-
[13]: "W",
|
|
29
|
-
[14]: "E"
|
|
30
|
-
};
|
|
31
|
-
var LogProcessorType = /* @__PURE__ */ (function(LogProcessorType2) {
|
|
32
|
-
LogProcessorType2["CONSOLE"] = "console";
|
|
33
|
-
LogProcessorType2["BROWSER"] = "browser";
|
|
34
|
-
LogProcessorType2["DEBUG"] = "debug";
|
|
35
|
-
return LogProcessorType2;
|
|
36
|
-
})({});
|
|
37
|
-
|
|
38
|
-
// src/scope.ts
|
|
39
|
-
var logInfoProperties = Symbol("logInfoProperties");
|
|
40
|
-
var logInfo = (target, propertyKey, descriptor) => {
|
|
41
|
-
(target[logInfoProperties] ??= []).push(propertyKey);
|
|
42
|
-
};
|
|
43
|
-
var gatherLogInfoFromScope = (scope) => {
|
|
44
|
-
if (!scope) {
|
|
45
|
-
return {};
|
|
46
|
-
}
|
|
47
|
-
const res = {};
|
|
48
|
-
const prototype = Object.getPrototypeOf(scope);
|
|
49
|
-
const infoProps = (typeof prototype === "object" && prototype !== null ? prototype[logInfoProperties] : []) ?? [];
|
|
50
|
-
for (const prop of infoProps) {
|
|
51
|
-
try {
|
|
52
|
-
res[prop] = typeof scope[prop] === "function" ? scope[prop]() : scope[prop];
|
|
53
|
-
} catch (err) {
|
|
54
|
-
res[prop] = err.message;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return res;
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
// src/context.ts
|
|
61
|
-
var matchFilter = (filter, level, path) => {
|
|
62
|
-
return level >= filter.level && (!filter.pattern || path.includes(filter.pattern));
|
|
63
|
-
};
|
|
64
|
-
var shouldLog = (entry, filters) => {
|
|
65
|
-
if (filters === void 0) {
|
|
66
|
-
return true;
|
|
67
|
-
} else {
|
|
68
|
-
return filters.some((filter) => matchFilter(filter, entry.level, entry.meta?.F ?? ""));
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
var getContextFromEntry = (entry) => {
|
|
72
|
-
let context;
|
|
73
|
-
if (entry.meta) {
|
|
74
|
-
const scopeInfo = gatherLogInfoFromScope(entry.meta.S);
|
|
75
|
-
if (Object.keys(scopeInfo).length > 0) {
|
|
76
|
-
context = Object.assign(context ?? {}, scopeInfo);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
const entryContext = typeof entry.context === "function" ? entry.context() : entry.context;
|
|
80
|
-
if (entryContext) {
|
|
81
|
-
if (entryContext instanceof Error) {
|
|
82
|
-
const c = entryContext.context;
|
|
83
|
-
context = Object.assign(context ?? {}, {
|
|
84
|
-
error: entryContext.stack,
|
|
85
|
-
...c
|
|
86
|
-
});
|
|
87
|
-
} else if (typeof entryContext === "object") {
|
|
88
|
-
context = Object.assign(context ?? {}, entryContext);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
if (entry.error) {
|
|
92
|
-
context = Object.assign(context ?? {}, {
|
|
93
|
-
error: entry.error
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
return context && Object.keys(context).length > 0 ? context : void 0;
|
|
97
|
-
};
|
|
98
|
-
|
|
99
44
|
// src/decorators.ts
|
|
100
45
|
import { inspect } from "@dxos/node-std/util";
|
|
101
46
|
import chalk from "chalk";
|
|
@@ -195,53 +140,37 @@ var logAsyncResolved = (log2, methodName, resolvedValue, promiseId, startTime, c
|
|
|
195
140
|
var logAsyncRejected = (log2, methodName, err, promiseId, startTime, combinedMeta) => {
|
|
196
141
|
log2.info(`.${formatFunction(methodName)} \u21B2 \u{1F525} ${chalk.gray("reject")} ${formatPromise(promiseId)} ${formatTimeElapsed(startTime)} ${chalk.gray("=>")} ${err}`, {}, combinedMeta);
|
|
197
142
|
};
|
|
198
|
-
var greenCheck = typeof chalk.green === "function" ? chalk.green("\u2714") : "\u2714";
|
|
199
|
-
var formatTimeElapsed = (startTime) => chalk.gray(`${(performance.now() - startTime).toFixed(0)}ms`);
|
|
200
143
|
var COLOR_FUNCTION = [
|
|
201
144
|
220,
|
|
202
145
|
220,
|
|
203
146
|
170
|
|
204
147
|
];
|
|
148
|
+
var greenCheck = typeof chalk.green === "function" ? chalk.green("\u2714") : "\u2714";
|
|
149
|
+
var formatTimeElapsed = (startTime) => chalk.gray(`${(performance.now() - startTime).toFixed(0)}ms`);
|
|
205
150
|
var formatFunction = (name) => chalk.bold(chalk.rgb(...COLOR_FUNCTION)(name));
|
|
206
151
|
var formatPromise = (id) => chalk.blue(`Promise#${id}`);
|
|
207
152
|
|
|
208
153
|
// src/options.ts
|
|
209
154
|
import defaultsDeep from "lodash.defaultsdeep";
|
|
210
155
|
|
|
211
|
-
// src/platform/
|
|
212
|
-
var
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
if (typeof localStorage === "undefined") {
|
|
216
|
-
if (globalThis.localStorage_dxlog) {
|
|
217
|
-
dxlog = globalThis.localStorage_dxlog;
|
|
218
|
-
}
|
|
219
|
-
} else {
|
|
220
|
-
dxlog = localStorage.getItem("dxlog") ?? void 0;
|
|
221
|
-
}
|
|
222
|
-
if (!dxlog) {
|
|
223
|
-
return void 0;
|
|
224
|
-
}
|
|
225
|
-
return JSON.parse(dxlog);
|
|
226
|
-
} catch (err) {
|
|
227
|
-
console.info("can't parse dxlog config", err);
|
|
228
|
-
return void 0;
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
|
|
232
|
-
// src/processors/console-stub.ts
|
|
233
|
-
var CONSOLE_PROCESSOR = () => {
|
|
234
|
-
};
|
|
156
|
+
// src/platform/index.ts
|
|
157
|
+
var platform_exports = {};
|
|
158
|
+
__reExport(platform_exports, platform_star);
|
|
159
|
+
import * as platform_star from "#platform";
|
|
235
160
|
|
|
236
|
-
// src/processors/
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
161
|
+
// src/processors/index.ts
|
|
162
|
+
var processors_exports = {};
|
|
163
|
+
__export(processors_exports, {
|
|
164
|
+
BROWSER_PROCESSOR: () => BROWSER_PROCESSOR,
|
|
165
|
+
DEBUG_PROCESSOR: () => DEBUG_PROCESSOR,
|
|
166
|
+
FILE_PROCESSOR: () => FILE_PROCESSOR,
|
|
167
|
+
createFileProcessor: () => createFileProcessor,
|
|
168
|
+
getRelativeFilename: () => getRelativeFilename
|
|
169
|
+
});
|
|
241
170
|
|
|
242
171
|
// src/processors/browser-processor.ts
|
|
243
172
|
import { getDebugName, safariCheck } from "@dxos/util";
|
|
244
|
-
var
|
|
173
|
+
var getRelativeFilename2 = (filename) => {
|
|
245
174
|
const match = filename.match(/.+\/(packages\/.+\/.+)/);
|
|
246
175
|
if (match) {
|
|
247
176
|
const [, filePath] = match;
|
|
@@ -261,7 +190,7 @@ var APP_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
261
190
|
const LOG_BROWSER_CSS = [];
|
|
262
191
|
let link = "";
|
|
263
192
|
if (entry.meta) {
|
|
264
|
-
const filename =
|
|
193
|
+
const filename = getRelativeFilename2(entry.meta.F);
|
|
265
194
|
const filepath = `${LOG_BROWSER_PREFIX.replace(/\/$/, "")}/${filename}`;
|
|
266
195
|
link = `${filepath}#L${entry.meta.L}`;
|
|
267
196
|
}
|
|
@@ -317,7 +246,7 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
317
246
|
}
|
|
318
247
|
let path = "";
|
|
319
248
|
if (entry.meta) {
|
|
320
|
-
path = `${
|
|
249
|
+
path = `${getRelativeFilename2(entry.meta.F)}:${entry.meta.L}`;
|
|
321
250
|
}
|
|
322
251
|
let args = [];
|
|
323
252
|
const processPrefix = entry.meta?.S?.hostSessionId ? "[worker] " : "";
|
|
@@ -346,22 +275,20 @@ var TEST_BROWSER_PROCESSOR = (config, entry) => {
|
|
|
346
275
|
};
|
|
347
276
|
var BROWSER_PROCESSOR = CONFIG.useTestProcessor ? TEST_BROWSER_PROCESSOR : APP_BROWSER_PROCESSOR;
|
|
348
277
|
|
|
349
|
-
// src/processors/
|
|
350
|
-
|
|
351
|
-
import
|
|
352
|
-
import { jsonlogify } from "@dxos/util";
|
|
278
|
+
// src/processors/index.ts
|
|
279
|
+
__reExport(processors_exports, console_processor_star);
|
|
280
|
+
import * as console_processor_star from "#console-processor";
|
|
353
281
|
|
|
354
|
-
// src/processors/
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
const [, filePath] = match;
|
|
359
|
-
return filePath;
|
|
360
|
-
}
|
|
361
|
-
return filename;
|
|
282
|
+
// src/processors/debug-processor.ts
|
|
283
|
+
import { inspect as inspect2 } from "@dxos/node-std/util";
|
|
284
|
+
var DEBUG_PROCESSOR = (config, entry) => {
|
|
285
|
+
console.log(inspect2(entry, false, null, true));
|
|
362
286
|
};
|
|
363
287
|
|
|
364
288
|
// src/processors/file-processor.ts
|
|
289
|
+
import { appendFileSync, mkdirSync, openSync } from "@dxos/node-std/fs";
|
|
290
|
+
import { dirname } from "@dxos/node-std/path";
|
|
291
|
+
import { jsonlogify } from "@dxos/util";
|
|
365
292
|
var EAGAIN_MAX_DURATION = 1e3;
|
|
366
293
|
var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
367
294
|
let fd;
|
|
@@ -386,7 +313,7 @@ var createFileProcessor = ({ pathOrFd, levels: levels2, filters }) => {
|
|
|
386
313
|
timestamp: Date.now(),
|
|
387
314
|
...entry.meta ? {
|
|
388
315
|
meta: {
|
|
389
|
-
file:
|
|
316
|
+
file: getRelativeFilename(entry.meta.F),
|
|
390
317
|
line: entry.meta.L
|
|
391
318
|
}
|
|
392
319
|
} : {},
|
|
@@ -429,14 +356,15 @@ var FILE_PROCESSOR = createFileProcessor({
|
|
|
429
356
|
|
|
430
357
|
// src/options.ts
|
|
431
358
|
var processors = {
|
|
432
|
-
[LogProcessorType.CONSOLE]: CONSOLE_PROCESSOR,
|
|
359
|
+
[LogProcessorType.CONSOLE]: processors_exports.CONSOLE_PROCESSOR,
|
|
433
360
|
[LogProcessorType.BROWSER]: BROWSER_PROCESSOR,
|
|
434
361
|
[LogProcessorType.DEBUG]: DEBUG_PROCESSOR
|
|
435
362
|
};
|
|
436
|
-
var
|
|
363
|
+
var browser = (typeof window !== "undefined" || typeof navigator !== "undefined") && !(typeof process !== "undefined" && process?.env?.VITEST);
|
|
437
364
|
var DEFAULT_PROCESSORS = [
|
|
438
|
-
|
|
365
|
+
browser ? BROWSER_PROCESSOR : processors_exports.CONSOLE_PROCESSOR
|
|
439
366
|
];
|
|
367
|
+
var parseLogLevel = (level, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;
|
|
440
368
|
var parseFilter = (filter) => {
|
|
441
369
|
if (typeof filter === "number") {
|
|
442
370
|
return [
|
|
@@ -445,7 +373,6 @@ var parseFilter = (filter) => {
|
|
|
445
373
|
}
|
|
446
374
|
];
|
|
447
375
|
}
|
|
448
|
-
const parseLogLevel = (level, defValue = LogLevel.WARN) => levels[level.toLowerCase()] ?? defValue;
|
|
449
376
|
const lines = typeof filter === "string" ? filter.split(/,\s*/) : filter;
|
|
450
377
|
return lines.map((filter2) => {
|
|
451
378
|
const [pattern, level] = filter2.split(":");
|
|
@@ -457,54 +384,37 @@ var parseFilter = (filter) => {
|
|
|
457
384
|
};
|
|
458
385
|
});
|
|
459
386
|
};
|
|
460
|
-
var
|
|
461
|
-
const
|
|
387
|
+
var createConfig = (options) => {
|
|
388
|
+
const envOptions = "process" in globalThis ? {
|
|
462
389
|
file: process.env.LOG_CONFIG,
|
|
463
390
|
filter: process.env.LOG_FILTER,
|
|
464
391
|
processor: process.env.LOG_PROCESSOR
|
|
465
392
|
} : void 0;
|
|
466
|
-
const mergedOptions = defaultsDeep({}, loadOptions(
|
|
393
|
+
const mergedOptions = defaultsDeep({}, (0, platform_exports.loadOptions)(envOptions?.file), envOptions, options);
|
|
467
394
|
return {
|
|
468
395
|
options: mergedOptions,
|
|
469
396
|
filters: parseFilter(mergedOptions.filter ?? LogLevel.INFO),
|
|
470
397
|
captureFilters: parseFilter(mergedOptions.captureFilter ?? LogLevel.WARN),
|
|
471
398
|
processors: mergedOptions.processor ? [
|
|
472
399
|
processors[mergedOptions.processor]
|
|
473
|
-
] :
|
|
400
|
+
] : [
|
|
401
|
+
...DEFAULT_PROCESSORS
|
|
402
|
+
],
|
|
474
403
|
prefix: mergedOptions.prefix
|
|
475
404
|
};
|
|
476
405
|
};
|
|
477
406
|
|
|
478
407
|
// src/log.ts
|
|
408
|
+
var logCount = 0;
|
|
479
409
|
var createLog = () => {
|
|
480
410
|
const log2 = (...params) => processLog(LogLevel.DEBUG, ...params);
|
|
481
|
-
log2
|
|
411
|
+
Object.assign(log2, {
|
|
412
|
+
_id: `log-${++logCount}`,
|
|
413
|
+
_config: createConfig()
|
|
414
|
+
});
|
|
482
415
|
Object.defineProperty(log2, "runtimeConfig", {
|
|
483
416
|
get: () => log2._config
|
|
484
417
|
});
|
|
485
|
-
log2.addProcessor = (processor) => {
|
|
486
|
-
if (DEFAULT_PROCESSORS.filter((p) => p === processor).length === 0) {
|
|
487
|
-
DEFAULT_PROCESSORS.push(processor);
|
|
488
|
-
}
|
|
489
|
-
if (log2._config.processors.filter((p) => p === processor).length === 0) {
|
|
490
|
-
log2._config.processors.push(processor);
|
|
491
|
-
}
|
|
492
|
-
};
|
|
493
|
-
log2.config = (options) => {
|
|
494
|
-
log2._config = getConfig(options);
|
|
495
|
-
};
|
|
496
|
-
log2.trace = (...params) => processLog(LogLevel.TRACE, ...params);
|
|
497
|
-
log2.debug = (...params) => processLog(LogLevel.DEBUG, ...params);
|
|
498
|
-
log2.verbose = (...params) => processLog(LogLevel.VERBOSE, ...params);
|
|
499
|
-
log2.info = (...params) => processLog(LogLevel.INFO, ...params);
|
|
500
|
-
log2.warn = (...params) => processLog(LogLevel.WARN, ...params);
|
|
501
|
-
log2.error = (...params) => processLog(LogLevel.ERROR, ...params);
|
|
502
|
-
log2.catch = (error, context, meta) => processLog(LogLevel.ERROR, void 0, context, meta, error);
|
|
503
|
-
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");
|
|
504
|
-
log2.stack = (message, context, meta) => processLog(LogLevel.INFO, `${message ?? "Stack Dump"}
|
|
505
|
-
${getFormattedStackTrace()}`, context, meta);
|
|
506
|
-
log2.method = createMethodLogDecorator(log2);
|
|
507
|
-
log2.func = createFunctionLogDecorator(log2);
|
|
508
418
|
const processLog = (level, message, context = {}, meta, error) => {
|
|
509
419
|
log2._config.processors.forEach((processor) => processor(log2._config, {
|
|
510
420
|
level,
|
|
@@ -514,9 +424,50 @@ ${getFormattedStackTrace()}`, context, meta);
|
|
|
514
424
|
error
|
|
515
425
|
}));
|
|
516
426
|
};
|
|
427
|
+
Object.assign(log2, {
|
|
428
|
+
/**
|
|
429
|
+
* Update config.
|
|
430
|
+
* NOTE: Preserves any processors that were already added to this logger instance
|
|
431
|
+
* unless an explicit processor option is provided.
|
|
432
|
+
*/
|
|
433
|
+
config: ({ processor, ...options }) => {
|
|
434
|
+
const config = createConfig(options);
|
|
435
|
+
const processors2 = processor ? config.processors : log2._config.processors;
|
|
436
|
+
log2._config = {
|
|
437
|
+
...config,
|
|
438
|
+
processors: processors2
|
|
439
|
+
};
|
|
440
|
+
return log2;
|
|
441
|
+
},
|
|
442
|
+
/**
|
|
443
|
+
* Adds a processor to the logger.
|
|
444
|
+
*/
|
|
445
|
+
addProcessor: (processor) => {
|
|
446
|
+
if (log2._config.processors.filter((p) => p === processor).length === 0) {
|
|
447
|
+
log2._config.processors.push(processor);
|
|
448
|
+
}
|
|
449
|
+
return () => {
|
|
450
|
+
log2._config.processors = log2._config.processors.filter((p) => p !== processor);
|
|
451
|
+
};
|
|
452
|
+
},
|
|
453
|
+
trace: (...params) => processLog(LogLevel.TRACE, ...params),
|
|
454
|
+
debug: (...params) => processLog(LogLevel.DEBUG, ...params),
|
|
455
|
+
verbose: (...params) => processLog(LogLevel.VERBOSE, ...params),
|
|
456
|
+
info: (...params) => processLog(LogLevel.INFO, ...params),
|
|
457
|
+
warn: (...params) => processLog(LogLevel.WARN, ...params),
|
|
458
|
+
error: (...params) => processLog(LogLevel.ERROR, ...params),
|
|
459
|
+
catch: (error, context, meta) => processLog(LogLevel.ERROR, void 0, context, meta, error),
|
|
460
|
+
method: createMethodLogDecorator(log2),
|
|
461
|
+
function: createFunctionLogDecorator(log2),
|
|
462
|
+
break: () => log2.info("-".repeat(80)),
|
|
463
|
+
stack: (message, context, meta) => {
|
|
464
|
+
return processLog(LogLevel.INFO, `${message ?? "Stack Dump"}
|
|
465
|
+
${getFormattedStackTrace()}`, context, meta);
|
|
466
|
+
}
|
|
467
|
+
});
|
|
517
468
|
return log2;
|
|
518
469
|
};
|
|
519
|
-
var log = globalThis.
|
|
470
|
+
var log = globalThis.DX_LOG ??= createLog();
|
|
520
471
|
var start = Date.now();
|
|
521
472
|
var last = start;
|
|
522
473
|
var debug = (label, args) => {
|
|
@@ -533,6 +484,9 @@ var debug = (label, args) => {
|
|
|
533
484
|
};
|
|
534
485
|
var getFormattedStackTrace = () => new Error().stack.split("\n").slice(3).join("\n");
|
|
535
486
|
|
|
487
|
+
// src/index.ts
|
|
488
|
+
__reExport(index_exports, processors_exports);
|
|
489
|
+
|
|
536
490
|
// src/experimental/ownership.ts
|
|
537
491
|
import { inspect as inspect3 } from "@dxos/node-std/util";
|
|
538
492
|
var kOwnershipScope = Symbol("kOwnershipScope");
|
|
@@ -568,17 +522,17 @@ var OwnershipScope = class {
|
|
|
568
522
|
var getCurrentOwnershipScope = (thisRef) => thisRef;
|
|
569
523
|
export {
|
|
570
524
|
BROWSER_PROCESSOR,
|
|
571
|
-
CONSOLE_PROCESSOR,
|
|
572
525
|
DEBUG_PROCESSOR,
|
|
573
526
|
FILE_PROCESSOR,
|
|
574
527
|
LogLevel,
|
|
575
528
|
LogProcessorType,
|
|
576
529
|
createFileProcessor,
|
|
530
|
+
createLog,
|
|
577
531
|
debug,
|
|
578
532
|
gatherLogInfoFromScope,
|
|
579
533
|
getContextFromEntry,
|
|
580
534
|
getCurrentOwnershipScope,
|
|
581
|
-
|
|
535
|
+
getRelativeFilename,
|
|
582
536
|
levels,
|
|
583
537
|
log,
|
|
584
538
|
logInfo,
|