logs-gateway 3.2.0 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1255 -1263
- package/dist/formatters/yaml-formatter.d.ts.map +1 -1
- package/dist/formatters/yaml-formatter.js +39 -10
- package/dist/formatters/yaml-formatter.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +3 -14
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +64 -120
- package/dist/logger.js.map +1 -1
- package/dist/sanitizer.d.ts +7 -0
- package/dist/sanitizer.d.ts.map +1 -1
- package/dist/sanitizer.js +40 -24
- package/dist/sanitizer.js.map +1 -1
- package/dist/types.d.ts +10 -14
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/debug-config.d.ts.map +1 -1
- package/dist/utils/debug-config.js +3 -66
- package/dist/utils/debug-config.js.map +1 -1
- package/dist/utils/package-logs-level.d.ts +40 -0
- package/dist/utils/package-logs-level.d.ts.map +1 -0
- package/dist/utils/package-logs-level.js +79 -0
- package/dist/utils/package-logs-level.js.map +1 -0
- package/docs/package-usage.md +155 -0
- package/docs/package.md +48 -0
- package/package.json +95 -94
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/yaml-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"yaml-formatter.d.ts","sourceRoot":"","sources":["../../src/formatters/yaml-formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAuC5C;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CA8BlE"}
|
|
@@ -40,6 +40,41 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
40
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
41
|
exports.formatLogEntryAsYaml = formatLogEntryAsYaml;
|
|
42
42
|
const yaml = __importStar(require("js-yaml"));
|
|
43
|
+
/**
|
|
44
|
+
* Replace circular references with a placeholder so YAML/JSON can serialize.
|
|
45
|
+
*/
|
|
46
|
+
function breakCircularRefs(obj, seen = new WeakSet()) {
|
|
47
|
+
if (obj === null || typeof obj !== 'object') {
|
|
48
|
+
return obj;
|
|
49
|
+
}
|
|
50
|
+
if (obj instanceof Date) {
|
|
51
|
+
return obj.toISOString();
|
|
52
|
+
}
|
|
53
|
+
if (seen.has(obj)) {
|
|
54
|
+
return '[Circular]';
|
|
55
|
+
}
|
|
56
|
+
seen.add(obj);
|
|
57
|
+
if (Array.isArray(obj)) {
|
|
58
|
+
return obj.map((item) => breakCircularRefs(item, seen));
|
|
59
|
+
}
|
|
60
|
+
const out = {};
|
|
61
|
+
for (const [k, v] of Object.entries(obj)) {
|
|
62
|
+
out[k] = breakCircularRefs(v, seen);
|
|
63
|
+
}
|
|
64
|
+
return out;
|
|
65
|
+
}
|
|
66
|
+
function safeJsonStringify(value) {
|
|
67
|
+
const seen = new WeakSet();
|
|
68
|
+
return JSON.stringify(value, (_key, v) => {
|
|
69
|
+
if (typeof v === 'object' && v !== null) {
|
|
70
|
+
if (seen.has(v)) {
|
|
71
|
+
return '[Circular]';
|
|
72
|
+
}
|
|
73
|
+
seen.add(v);
|
|
74
|
+
}
|
|
75
|
+
return v;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
43
78
|
/**
|
|
44
79
|
* Format a log envelope as YAML
|
|
45
80
|
*
|
|
@@ -48,12 +83,8 @@ const yaml = __importStar(require("js-yaml"));
|
|
|
48
83
|
*/
|
|
49
84
|
function formatLogEntryAsYaml(envelope) {
|
|
50
85
|
try {
|
|
51
|
-
//
|
|
52
|
-
|
|
53
|
-
JSON.stringify(envelope);
|
|
54
|
-
// Ensure timestamps and IDs are strings to avoid YAML implicit typing
|
|
55
|
-
const safeEnvelope = ensureStringTypes(envelope);
|
|
56
|
-
// Format as YAML with safe options
|
|
86
|
+
// Coerce Date / non-string IDs first so breakCircularRefs does not treat Date as an empty object
|
|
87
|
+
const safeEnvelope = breakCircularRefs(ensureStringTypes(envelope));
|
|
57
88
|
const yamlContent = yaml.dump(safeEnvelope, {
|
|
58
89
|
noRefs: true, // No references/anchors for readability & ingest safety
|
|
59
90
|
skipInvalid: true, // Skip invalid values
|
|
@@ -63,11 +94,9 @@ function formatLogEntryAsYaml(envelope) {
|
|
|
63
94
|
quotingType: '"', // Use double quotes for strings
|
|
64
95
|
forceQuotes: false // Only quote when necessary
|
|
65
96
|
});
|
|
66
|
-
// Add document separator prefix for multi-document YAML
|
|
67
97
|
return `---\n${yamlContent}`;
|
|
68
98
|
}
|
|
69
|
-
catch
|
|
70
|
-
// Fallback to JSON if YAML formatting fails
|
|
99
|
+
catch {
|
|
71
100
|
const fallbackEnvelope = {
|
|
72
101
|
...envelope,
|
|
73
102
|
data: {
|
|
@@ -78,7 +107,7 @@ function formatLogEntryAsYaml(envelope) {
|
|
|
78
107
|
}
|
|
79
108
|
}
|
|
80
109
|
};
|
|
81
|
-
return
|
|
110
|
+
return safeJsonStringify(fallbackEnvelope);
|
|
82
111
|
}
|
|
83
112
|
}
|
|
84
113
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yaml-formatter.js","sourceRoot":"","sources":["../../src/formatters/yaml-formatter.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"yaml-formatter.js","sourceRoot":"","sources":["../../src/formatters/yaml-formatter.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDH,oDA8BC;AA5ED,8CAAgC;AAGhC;;GAEG;AACH,SAAS,iBAAiB,CAAI,GAAM,EAAE,OAAO,IAAI,OAAO,EAAU;IAChE,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,WAAW,EAAO,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAa,CAAC,EAAE,CAAC;QAC5B,OAAO,YAAiB,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,GAAa,CAAC,CAAC;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAQ,GAA4B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAM,CAAC;IACzF,CAAC;IACD,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAa,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAW,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,GAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,MAAM,IAAI,GAAG,IAAI,OAAO,EAAU,CAAC;IACnC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACvC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,OAAO,YAAY,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,QAAqB;IACxD,IAAI,CAAC;QACH,iGAAiG;QACjG,MAAM,YAAY,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,QAAQ,CAAgB,CAAC,CAAC;QAEnF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC1C,MAAM,EAAE,IAAI,EAAS,wDAAwD;YAC7E,WAAW,EAAE,IAAI,EAAI,sBAAsB;YAC3C,MAAM,EAAE,CAAC,EAAY,sBAAsB;YAC3C,SAAS,EAAE,GAAG,EAAO,mBAAmB;YACxC,YAAY,EAAE,IAAI,EAAG,2BAA2B;YAChD,WAAW,EAAE,GAAG,EAAK,gCAAgC;YACrD,WAAW,EAAE,KAAK,CAAG,4BAA4B;SAClD,CAAC,CAAC;QAEH,OAAO,QAAQ,WAAW,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,gBAAgB,GAAG;YACvB,GAAG,QAAQ;YACX,IAAI,EAAE;gBACJ,GAAG,QAAQ,CAAC,IAAI;gBAChB,MAAM,EAAE;oBACN,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM;oBACxB,cAAc,EAAE,WAAW;iBAC5B;aACF;SACF,CAAC;QAEF,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,QAAqB;IAC9C,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE7B,4DAA4D;IAC5D,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1D,CAAC;IAED,oCAAoC;IACpC,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,0CAA0C;IAC1C,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,iDAAiD;IACjD,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QACjE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,oDAAoD;IACpD,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC3D,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QACjE,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ export type { LogLevel, LogFormat, LoggingConfig, SanitizationConfig, CustomLogg
|
|
|
7
7
|
export { LogsGateway } from './logger';
|
|
8
8
|
import { LogsGateway } from './logger';
|
|
9
9
|
import type { LoggerPackageConfig, LoggingConfig } from './types';
|
|
10
|
+
export { parsePackageLogsLevelString, resolvePackageLogsLevel, packageLogsLevelEnvKey, legacyPackageLogLevelEnvKey } from './utils/package-logs-level';
|
|
11
|
+
export type { ResolvePackageLogsLevelOptions } from './utils/package-logs-level';
|
|
10
12
|
/**
|
|
11
13
|
* Create a package-specific logger instance
|
|
12
14
|
*
|
|
@@ -19,6 +21,7 @@ import type { LoggerPackageConfig, LoggingConfig } from './types';
|
|
|
19
21
|
* import { createLogger } from 'logs-gateway';
|
|
20
22
|
*
|
|
21
23
|
* // Zero-config mode (ERC 2.0): Auto-discovers from environment variables
|
|
24
|
+
* // Set MY_APP_LOGS_LEVEL (canonical) or MY_APP_LOG_LEVEL (legacy) — see docs/package-usage.md
|
|
22
25
|
* const logger = createLogger(
|
|
23
26
|
* { packageName: 'MY_APP', envPrefix: 'MY_APP', debugNamespace: 'my-app' }
|
|
24
27
|
* );
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,QAAQ,EACR,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,EACZ,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAMvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAiF,MAAM,SAAS,CAAC;AAEjJ
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,QAAQ,EACR,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,qBAAqB,EACrB,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,EACZ,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAMvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAiF,MAAM,SAAS,CAAC;AAEjJ,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,mBAAmB,EAClC,UAAU,CAAC,EAAE,aAAa,GACzB,WAAW,CAkLb;;;;;AAGD,wBAGE"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* This file exports all public APIs and provides the main factory function.
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.LogsGateway = void 0;
|
|
8
|
+
exports.legacyPackageLogLevelEnvKey = exports.packageLogsLevelEnvKey = exports.resolvePackageLogsLevel = exports.parsePackageLogsLevelString = exports.LogsGateway = void 0;
|
|
9
9
|
exports.createLogger = createLogger;
|
|
10
10
|
// Re-export the LogsGateway class
|
|
11
11
|
var logger_1 = require("./logger");
|
|
@@ -16,6 +16,11 @@ const unified_logger_output_1 = require("./outputs/unified-logger-output");
|
|
|
16
16
|
const yaml_formatter_1 = require("./formatters/yaml-formatter");
|
|
17
17
|
const table_formatter_1 = require("./formatters/table-formatter");
|
|
18
18
|
const app_info_1 = require("./app-info");
|
|
19
|
+
var package_logs_level_1 = require("./utils/package-logs-level");
|
|
20
|
+
Object.defineProperty(exports, "parsePackageLogsLevelString", { enumerable: true, get: function () { return package_logs_level_1.parsePackageLogsLevelString; } });
|
|
21
|
+
Object.defineProperty(exports, "resolvePackageLogsLevel", { enumerable: true, get: function () { return package_logs_level_1.resolvePackageLogsLevel; } });
|
|
22
|
+
Object.defineProperty(exports, "packageLogsLevelEnvKey", { enumerable: true, get: function () { return package_logs_level_1.packageLogsLevelEnvKey; } });
|
|
23
|
+
Object.defineProperty(exports, "legacyPackageLogLevelEnvKey", { enumerable: true, get: function () { return package_logs_level_1.legacyPackageLogLevelEnvKey; } });
|
|
19
24
|
/**
|
|
20
25
|
* Create a package-specific logger instance
|
|
21
26
|
*
|
|
@@ -28,6 +33,7 @@ const app_info_1 = require("./app-info");
|
|
|
28
33
|
* import { createLogger } from 'logs-gateway';
|
|
29
34
|
*
|
|
30
35
|
* // Zero-config mode (ERC 2.0): Auto-discovers from environment variables
|
|
36
|
+
* // Set MY_APP_LOGS_LEVEL (canonical) or MY_APP_LOG_LEVEL (legacy) — see docs/package-usage.md
|
|
31
37
|
* const logger = createLogger(
|
|
32
38
|
* { packageName: 'MY_APP', envPrefix: 'MY_APP', debugNamespace: 'my-app' }
|
|
33
39
|
* );
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -18,8 +18,7 @@ export declare class LogsGateway {
|
|
|
18
18
|
private debugScopingConfig;
|
|
19
19
|
private levelPriority;
|
|
20
20
|
private sinks;
|
|
21
|
-
private
|
|
22
|
-
private activeFrameLevels;
|
|
21
|
+
private activeBetweenRanges;
|
|
23
22
|
constructor(packageConfig: LoggerPackageConfig, userConfig?: LoggingConfig, sinks?: {
|
|
24
23
|
console?: (level: LogLevel, msg: string, meta?: LogMeta) => void;
|
|
25
24
|
file?: (level: LogLevel, msg: string, meta?: LogMeta) => void;
|
|
@@ -39,7 +38,6 @@ export declare class LogsGateway {
|
|
|
39
38
|
private ensureLogDirectory;
|
|
40
39
|
/**
|
|
41
40
|
* Check if a log level should be output based on current configuration
|
|
42
|
-
* Takes into account active log frames that may override the log level
|
|
43
41
|
*/
|
|
44
42
|
private shouldLog;
|
|
45
43
|
/**
|
|
@@ -66,22 +64,13 @@ export declare class LogsGateway {
|
|
|
66
64
|
*/
|
|
67
65
|
private getSearchableLogText;
|
|
68
66
|
/**
|
|
69
|
-
* Update the state of
|
|
67
|
+
* Update the state of between ranges based on current log entry
|
|
70
68
|
*
|
|
71
69
|
* @param message - Log message
|
|
72
70
|
* @param identity - Log identity
|
|
73
71
|
* @param meta - Log metadata
|
|
74
72
|
*/
|
|
75
|
-
|
|
76
|
-
* Get logFrames from config, normalizing 'between' alias to 'logFrames'
|
|
77
|
-
*/
|
|
78
|
-
private getLogFrames;
|
|
79
|
-
/**
|
|
80
|
-
* Check if a log contains database-related information (connection strings, binding info, etc.)
|
|
81
|
-
* or Xronox Routing logs. This is used for default filtering of these logs unless explicitly included via filters
|
|
82
|
-
*/
|
|
83
|
-
private containsDatabaseInfo;
|
|
84
|
-
private updateLogFrameState;
|
|
73
|
+
private updateBetweenRangeState;
|
|
85
74
|
/**
|
|
86
75
|
* Check if a log should be included based on debug scoping configuration
|
|
87
76
|
* Filters logs at runtime based on identity and application name
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,QAAQ,EAER,aAAa,EACb,mBAAmB,EAEnB,qBAAqB,EACrB,OAAO,EAEP,gBAAgB,EACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,QAAQ,EAER,aAAa,EACb,mBAAmB,EAEnB,qBAAqB,EACrB,OAAO,EAEP,gBAAgB,EACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAStE;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,SAAgB,MAAM,EAAE,gBAAgB,CAAC;IACzC,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,aAAa,CAMnB;IACF,OAAO,CAAC,KAAK,CAIX;IACF,OAAO,CAAC,mBAAmB,CAA0B;gBAGnD,aAAa,EAAE,mBAAmB,EAClC,UAAU,CAAC,EAAE,aAAa,EAC1B,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;QACjE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;QAC9D,OAAO,CAAC,EAAE,mBAAmB,CAAC;KAC/B;IA4IH;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;IACH,OAAO,CAAC,SAAS;IAmBjB;;OAEG;IACH,OAAO,CAAC,UAAU;IAiBlB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAsBvB;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAoE/B;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IA2ExB;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAelC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAyE3B;;OAEG;IACH,OAAO,CAAC,cAAc;IA2DtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgCtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAcnB;;OAEG;IACH,OAAO,CAAC,IAAI;IA+GZ;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI9C;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5C;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI3C;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI3C;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5C;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAI9C;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,qBAAqB,CAAC;IAI5C;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;CAGzC"}
|
package/dist/logger.js
CHANGED
|
@@ -47,6 +47,7 @@ const table_formatter_1 = require("./formatters/table-formatter");
|
|
|
47
47
|
const shadow_sink_1 = require("./outputs/shadow-sink");
|
|
48
48
|
const app_info_1 = require("./app-info");
|
|
49
49
|
const debug_config_1 = require("./utils/debug-config");
|
|
50
|
+
const package_logs_level_1 = require("./utils/package-logs-level");
|
|
50
51
|
/**
|
|
51
52
|
* Main LogsGateway class for handling all logging operations
|
|
52
53
|
*/
|
|
@@ -59,17 +60,19 @@ class LogsGateway {
|
|
|
59
60
|
warn: 3,
|
|
60
61
|
error: 4
|
|
61
62
|
};
|
|
62
|
-
this.
|
|
63
|
-
this.activeFrameLevels = new Map(); // Tracks log levels for active setLevel frames
|
|
63
|
+
this.activeBetweenRanges = new Set(); // Tracks indices of active between rules
|
|
64
64
|
this.packageConfig = packageConfig;
|
|
65
65
|
this.sinks = sinks || {};
|
|
66
66
|
// Automatically detect consuming application's package name and version
|
|
67
67
|
this.appInfo = (0, app_info_1.detectAppInfo)();
|
|
68
68
|
// Load debug scoping configuration from logger-debug.json
|
|
69
69
|
this.debugScopingConfig = (0, debug_config_1.loadDebugConfig)();
|
|
70
|
-
// Check DEBUG environment variable
|
|
71
70
|
const envPrefix = packageConfig.envPrefix || packageConfig.packageName;
|
|
72
|
-
const
|
|
71
|
+
const resolvedLevel = (0, package_logs_level_1.resolvePackageLogsLevel)({
|
|
72
|
+
envPrefix,
|
|
73
|
+
...(userConfig?.logLevel !== undefined ? { userLogLevel: userConfig.logLevel } : {}),
|
|
74
|
+
env: process.env
|
|
75
|
+
});
|
|
73
76
|
// Parse console package filtering from env vars
|
|
74
77
|
const parsePackageList = (envVar) => {
|
|
75
78
|
if (!envVar)
|
|
@@ -86,9 +89,8 @@ class LogsGateway {
|
|
|
86
89
|
logFilePath: userConfig?.logFilePath ??
|
|
87
90
|
process.env[`${envPrefix}_LOG_FILE`] ??
|
|
88
91
|
'',
|
|
89
|
-
logLevel:
|
|
90
|
-
|
|
91
|
-
(debugEnabled ? 'verbose' : 'info'),
|
|
92
|
+
logLevel: resolvedLevel.logLevel,
|
|
93
|
+
packageLogsDisabled: resolvedLevel.packageLogsDisabled,
|
|
92
94
|
logFormat: userConfig?.logFormat ??
|
|
93
95
|
process.env[`${envPrefix}_LOG_FORMAT`] ??
|
|
94
96
|
'table',
|
|
@@ -221,31 +223,17 @@ class LogsGateway {
|
|
|
221
223
|
}
|
|
222
224
|
/**
|
|
223
225
|
* Check if a log level should be output based on current configuration
|
|
224
|
-
* Takes into account active log frames that may override the log level
|
|
225
226
|
*/
|
|
226
227
|
shouldLog(level) {
|
|
227
|
-
|
|
228
|
+
if (this.config.packageLogsDisabled) {
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
// Check DEBUG environment variable override (does not apply when package is silent via _LOGS_LEVEL contract)
|
|
228
232
|
const debugEnabled = process.env.DEBUG?.includes(this.packageConfig.debugNamespace || this.packageConfig.packageName.toLowerCase());
|
|
229
|
-
// If DEBUG is enabled, allow verbose and debug levels regardless of configured level
|
|
230
233
|
if (debugEnabled && (level === 'verbose' || level === 'debug')) {
|
|
231
234
|
return true;
|
|
232
235
|
}
|
|
233
|
-
|
|
234
|
-
let effectiveLogLevel = this.config.logLevel;
|
|
235
|
-
if (this.activeFrameLevels.size > 0) {
|
|
236
|
-
// Find the most permissive level (lowest priority number = allows more logs)
|
|
237
|
-
let mostPermissiveLevel = this.config.logLevel;
|
|
238
|
-
let mostPermissivePriority = this.levelPriority[this.config.logLevel];
|
|
239
|
-
for (const frameLevel of this.activeFrameLevels.values()) {
|
|
240
|
-
const framePriority = this.levelPriority[frameLevel];
|
|
241
|
-
if (framePriority < mostPermissivePriority) {
|
|
242
|
-
mostPermissivePriority = framePriority;
|
|
243
|
-
mostPermissiveLevel = frameLevel;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
effectiveLogLevel = mostPermissiveLevel;
|
|
247
|
-
}
|
|
248
|
-
const currentLevelPriority = this.levelPriority[effectiveLogLevel];
|
|
236
|
+
const currentLevelPriority = this.levelPriority[this.config.logLevel];
|
|
249
237
|
const messageLevelPriority = this.levelPriority[level];
|
|
250
238
|
return messageLevelPriority >= currentLevelPriority;
|
|
251
239
|
}
|
|
@@ -332,63 +320,33 @@ class LogsGateway {
|
|
|
332
320
|
return parts.join(' ');
|
|
333
321
|
}
|
|
334
322
|
/**
|
|
335
|
-
* Update the state of
|
|
323
|
+
* Update the state of between ranges based on current log entry
|
|
336
324
|
*
|
|
337
325
|
* @param message - Log message
|
|
338
326
|
* @param identity - Log identity
|
|
339
327
|
* @param meta - Log metadata
|
|
340
328
|
*/
|
|
341
|
-
|
|
342
|
-
* Get logFrames from config, normalizing 'between' alias to 'logFrames'
|
|
343
|
-
*/
|
|
344
|
-
getLogFrames(scopingConfig) {
|
|
345
|
-
// Normalize 'between' alias to 'logFrames' if logFrames is not set
|
|
346
|
-
if (!scopingConfig.scoping.logFrames && scopingConfig.scoping.between) {
|
|
347
|
-
return scopingConfig.scoping.between;
|
|
348
|
-
}
|
|
349
|
-
return scopingConfig.scoping.logFrames;
|
|
350
|
-
}
|
|
351
|
-
/**
|
|
352
|
-
* Check if a log contains database-related information (connection strings, binding info, etc.)
|
|
353
|
-
* or Xronox Routing logs. This is used for default filtering of these logs unless explicitly included via filters
|
|
354
|
-
*/
|
|
355
|
-
containsDatabaseInfo(message, meta) {
|
|
356
|
-
const searchText = this.getSearchableLogText(message, undefined, meta).toLowerCase();
|
|
357
|
-
// Filter logs that contain "logs-db" (case-insensitive)
|
|
358
|
-
if (searchText.includes('logs-db')) {
|
|
359
|
-
return true;
|
|
360
|
-
}
|
|
361
|
-
// Filter logs from "[Xronox Routing]" (case-insensitive)
|
|
362
|
-
if (searchText.includes('[xronox routing]') || searchText.includes('xronox routing')) {
|
|
363
|
-
return true;
|
|
364
|
-
}
|
|
365
|
-
return false;
|
|
366
|
-
}
|
|
367
|
-
updateLogFrameState(message, identity, meta) {
|
|
329
|
+
updateBetweenRangeState(message, identity, meta) {
|
|
368
330
|
const scopingConfig = this.config.debugScoping || this.debugScopingConfig;
|
|
369
|
-
// If no config or scoping is disabled, no
|
|
331
|
+
// If no config or scoping is disabled, no between rules to process
|
|
370
332
|
if (!scopingConfig || scopingConfig.scoping.status !== 'enabled') {
|
|
371
333
|
return;
|
|
372
334
|
}
|
|
373
|
-
const
|
|
374
|
-
if (!
|
|
335
|
+
const betweenRules = scopingConfig.scoping.between;
|
|
336
|
+
if (!betweenRules || betweenRules.length === 0) {
|
|
375
337
|
return;
|
|
376
338
|
}
|
|
377
|
-
// Initialize
|
|
378
|
-
// This ensures
|
|
379
|
-
for (let i = 0; i <
|
|
380
|
-
const rule =
|
|
339
|
+
// Initialize ranges with empty startIdentities (ranges that start from beginning)
|
|
340
|
+
// This ensures ranges with empty startIdentities are active from the start
|
|
341
|
+
for (let i = 0; i < betweenRules.length; i++) {
|
|
342
|
+
const rule = betweenRules[i];
|
|
381
343
|
if (rule && rule.startIdentities.length === 0) {
|
|
382
|
-
this.
|
|
383
|
-
// If it's a setLevel frame, track its level
|
|
384
|
-
if (rule.action === 'setLevel' && rule.level) {
|
|
385
|
-
this.activeFrameLevels.set(i, rule.level);
|
|
386
|
-
}
|
|
344
|
+
this.activeBetweenRanges.add(i);
|
|
387
345
|
}
|
|
388
346
|
}
|
|
389
|
-
// Process each
|
|
390
|
-
for (let i = 0; i <
|
|
391
|
-
const rule =
|
|
347
|
+
// Process each rule
|
|
348
|
+
for (let i = 0; i < betweenRules.length; i++) {
|
|
349
|
+
const rule = betweenRules[i];
|
|
392
350
|
if (!rule) {
|
|
393
351
|
continue;
|
|
394
352
|
}
|
|
@@ -408,35 +366,25 @@ class LogsGateway {
|
|
|
408
366
|
: false;
|
|
409
367
|
// Handle matching both start and end (treat as both start and end)
|
|
410
368
|
if (matchesStart && matchesEnd) {
|
|
411
|
-
// Toggle the
|
|
412
|
-
if (this.
|
|
413
|
-
this.
|
|
414
|
-
this.activeFrameLevels.delete(i);
|
|
369
|
+
// Toggle the range state
|
|
370
|
+
if (this.activeBetweenRanges.has(i)) {
|
|
371
|
+
this.activeBetweenRanges.delete(i);
|
|
415
372
|
}
|
|
416
373
|
else {
|
|
417
|
-
this.
|
|
418
|
-
// If it's a setLevel frame, track its level
|
|
419
|
-
if (rule.action === 'setLevel' && rule.level) {
|
|
420
|
-
this.activeFrameLevels.set(i, rule.level);
|
|
421
|
-
}
|
|
374
|
+
this.activeBetweenRanges.add(i);
|
|
422
375
|
}
|
|
423
376
|
}
|
|
424
377
|
else if (matchesStart) {
|
|
425
|
-
// Activate
|
|
426
|
-
this.
|
|
427
|
-
// If it's a setLevel frame, track its level
|
|
428
|
-
if (rule.action === 'setLevel' && rule.level) {
|
|
429
|
-
this.activeFrameLevels.set(i, rule.level);
|
|
430
|
-
}
|
|
378
|
+
// Activate range
|
|
379
|
+
this.activeBetweenRanges.add(i);
|
|
431
380
|
}
|
|
432
381
|
else if (matchesEnd) {
|
|
433
|
-
// Deactivate
|
|
382
|
+
// Deactivate range (only if endIdentities is not empty)
|
|
434
383
|
if (rule.endIdentities.length > 0) {
|
|
435
|
-
this.
|
|
436
|
-
this.activeFrameLevels.delete(i);
|
|
384
|
+
this.activeBetweenRanges.delete(i);
|
|
437
385
|
}
|
|
438
386
|
}
|
|
439
|
-
// Note: Empty endIdentities means
|
|
387
|
+
// Note: Empty endIdentities means range never closes, so we don't remove it
|
|
440
388
|
}
|
|
441
389
|
}
|
|
442
390
|
/**
|
|
@@ -452,21 +400,11 @@ class LogsGateway {
|
|
|
452
400
|
shouldIncludeLog(message, identity, appName, meta) {
|
|
453
401
|
// Use user-provided config if available, otherwise use loaded debug config
|
|
454
402
|
const scopingConfig = this.config.debugScoping || this.debugScopingConfig;
|
|
455
|
-
//
|
|
456
|
-
// regardless of frames, other filters, or scoping status, unless filterDatabaseLogs is explicitly disabled
|
|
457
|
-
let filterDatabaseLogs = true; // Default to true
|
|
458
|
-
if (scopingConfig && scopingConfig.scoping.filterDatabaseLogs !== undefined) {
|
|
459
|
-
filterDatabaseLogs = scopingConfig.scoping.filterDatabaseLogs;
|
|
460
|
-
}
|
|
461
|
-
if (filterDatabaseLogs && this.containsDatabaseInfo(message, meta)) {
|
|
462
|
-
return false;
|
|
463
|
-
}
|
|
464
|
-
// If no config or scoping is disabled, include all logs (database filter already applied above)
|
|
403
|
+
// If no config or scoping is disabled, include all logs
|
|
465
404
|
if (!scopingConfig || scopingConfig.scoping.status !== 'enabled') {
|
|
466
405
|
return true;
|
|
467
406
|
}
|
|
468
|
-
const { filterIdentities, filteredApplications } = scopingConfig.scoping;
|
|
469
|
-
const logFrames = this.getLogFrames(scopingConfig);
|
|
407
|
+
const { filterIdentities, filteredApplications, between } = scopingConfig.scoping;
|
|
470
408
|
// Check existing filterIdentities/filteredApplications (OR logic)
|
|
471
409
|
let matchesExistingFilter = false;
|
|
472
410
|
const hasIdentityFilter = filterIdentities && filterIdentities.length > 0;
|
|
@@ -481,14 +419,18 @@ class LogsGateway {
|
|
|
481
419
|
matchesExistingFilter = true;
|
|
482
420
|
}
|
|
483
421
|
}
|
|
484
|
-
//
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
422
|
+
// If no filters are configured (including between), include all logs
|
|
423
|
+
if (!hasIdentityFilter && !hasAppFilter && (!between || between.length === 0)) {
|
|
424
|
+
return true;
|
|
425
|
+
}
|
|
426
|
+
// Update between range state
|
|
427
|
+
if (between && between.length > 0) {
|
|
428
|
+
this.updateBetweenRangeState(message, identity, meta);
|
|
429
|
+
// Check active between ranges
|
|
430
|
+
let hasActiveIncludeRule = false;
|
|
431
|
+
let hasActiveExcludeRule = false;
|
|
432
|
+
for (const ruleIndex of this.activeBetweenRanges) {
|
|
433
|
+
const rule = between[ruleIndex];
|
|
492
434
|
if (!rule) {
|
|
493
435
|
continue;
|
|
494
436
|
}
|
|
@@ -498,20 +440,19 @@ class LogsGateway {
|
|
|
498
440
|
else if (rule.action === 'exclude') {
|
|
499
441
|
hasActiveExcludeRule = true;
|
|
500
442
|
}
|
|
501
|
-
|
|
443
|
+
}
|
|
444
|
+
// Between rules use OR logic with existing filters
|
|
445
|
+
// If ANY include rule is active, include the log
|
|
446
|
+
if (hasActiveIncludeRule) {
|
|
447
|
+
return true;
|
|
448
|
+
}
|
|
449
|
+
// If ANY exclude rule is active, exclude the log
|
|
450
|
+
if (hasActiveExcludeRule) {
|
|
451
|
+
return false;
|
|
502
452
|
}
|
|
503
453
|
}
|
|
504
|
-
// If
|
|
505
|
-
|
|
506
|
-
if (matchesExistingFilter || hasActiveIncludeRule) {
|
|
507
|
-
return true;
|
|
508
|
-
}
|
|
509
|
-
// If ANY exclude rule is active, exclude the log
|
|
510
|
-
if (hasActiveExcludeRule) {
|
|
511
|
-
return false;
|
|
512
|
-
}
|
|
513
|
-
// If no explicit filters are configured, include all logs
|
|
514
|
-
if (!hasIdentityFilter && !hasAppFilter && (!logFrames || logFrames.length === 0)) {
|
|
454
|
+
// If existing filters match, include the log
|
|
455
|
+
if (matchesExistingFilter) {
|
|
515
456
|
return true;
|
|
516
457
|
}
|
|
517
458
|
// No matches found - filter out the log
|
|
@@ -719,6 +660,9 @@ class LogsGateway {
|
|
|
719
660
|
* Core logging method that handles all log output
|
|
720
661
|
*/
|
|
721
662
|
emit(level, message, meta) {
|
|
663
|
+
if (this.config.packageLogsDisabled) {
|
|
664
|
+
return;
|
|
665
|
+
}
|
|
722
666
|
// Get identity - use provided identity or auto-generate from call site
|
|
723
667
|
const identity = meta?.identity ?? this.getCallSiteIdentity();
|
|
724
668
|
// Apply debug scoping filter - if log doesn't match filters, skip all outputs
|