@evdy-consumer/dailyom-suite-logging 0.0.5 → 0.0.6-alpha.1
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/package.json +1 -1
- package/src/lib/logging.d.ts +6 -1
- package/src/lib/logging.js +40 -12
- package/src/lib/logging.js.map +1 -1
package/package.json
CHANGED
package/src/lib/logging.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import * as bunyan from 'bunyan';
|
|
2
1
|
import { AsyncLocalStorage } from 'async_hooks';
|
|
2
|
+
import * as bunyan from 'bunyan';
|
|
3
3
|
export interface TraceContext {
|
|
4
4
|
traceId: string;
|
|
5
5
|
spanId: string;
|
|
6
|
+
url: string;
|
|
6
7
|
}
|
|
7
8
|
export declare function createTraceContext(): TraceContext;
|
|
8
9
|
export declare function createChildSpan(parentContext: TraceContext): TraceContext;
|
|
@@ -12,14 +13,18 @@ export interface LoggerOptions {
|
|
|
12
13
|
logToConsole?: boolean;
|
|
13
14
|
logToFile?: boolean;
|
|
14
15
|
fileName?: string;
|
|
16
|
+
scrubItems?: string[];
|
|
15
17
|
}
|
|
16
18
|
export declare function createLogger(options: LoggerOptions): bunyan;
|
|
17
19
|
export declare const traceContextStorage: AsyncLocalStorage<TraceContext>;
|
|
18
20
|
export declare function getCurrentTraceContext(): TraceContext;
|
|
19
21
|
export declare class TracedLogger {
|
|
20
22
|
private logger;
|
|
23
|
+
private keysToScrub;
|
|
21
24
|
constructor(options: LoggerOptions);
|
|
22
25
|
private getLoggerWithContext;
|
|
26
|
+
scrub(input: unknown): unknown;
|
|
27
|
+
append(data: object): bunyan;
|
|
23
28
|
trace(data: object, msg: string, ...args: any[]): void;
|
|
24
29
|
debug(data: object, msg: string, ...args: any[]): void;
|
|
25
30
|
info(data: object, msg: string, ...args: any[]): void;
|
package/src/lib/logging.js
CHANGED
|
@@ -5,13 +5,13 @@ exports.createTraceContext = createTraceContext;
|
|
|
5
5
|
exports.createChildSpan = createChildSpan;
|
|
6
6
|
exports.createLogger = createLogger;
|
|
7
7
|
exports.getCurrentTraceContext = getCurrentTraceContext;
|
|
8
|
-
const
|
|
9
|
-
const path = require("path");
|
|
8
|
+
const async_hooks_1 = require("async_hooks");
|
|
10
9
|
const fs = require("fs");
|
|
10
|
+
const path = require("path");
|
|
11
|
+
const bunyan = require("bunyan");
|
|
11
12
|
const uuid_1 = require("uuid");
|
|
12
|
-
const async_hooks_1 = require("async_hooks");
|
|
13
13
|
const RotatingFileStream = require('bunyan-rotating-file-stream');
|
|
14
|
-
const LOG_DIR = process.env[
|
|
14
|
+
const LOG_DIR = process.env['LOG_DIR'] || path.join(process.cwd(), 'logs');
|
|
15
15
|
if (!fs.existsSync(LOG_DIR)) {
|
|
16
16
|
fs.mkdirSync(LOG_DIR, { recursive: true });
|
|
17
17
|
}
|
|
@@ -19,12 +19,14 @@ function createTraceContext() {
|
|
|
19
19
|
return {
|
|
20
20
|
traceId: (0, uuid_1.v4)(),
|
|
21
21
|
spanId: (0, uuid_1.v4)(),
|
|
22
|
+
url: '',
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
25
|
function createChildSpan(parentContext) {
|
|
25
26
|
return {
|
|
26
27
|
traceId: parentContext.traceId,
|
|
27
|
-
spanId: (0, uuid_1.v4)()
|
|
28
|
+
spanId: (0, uuid_1.v4)(),
|
|
29
|
+
url: parentContext.url,
|
|
28
30
|
};
|
|
29
31
|
}
|
|
30
32
|
//Returns formatted date in the format YYYY-MM-DD.
|
|
@@ -77,33 +79,57 @@ function getCurrentTraceContext() {
|
|
|
77
79
|
}
|
|
78
80
|
class TracedLogger {
|
|
79
81
|
logger;
|
|
82
|
+
keysToScrub;
|
|
80
83
|
constructor(options) {
|
|
81
84
|
this.logger = createLogger(options);
|
|
85
|
+
this.keysToScrub = new Set(options.scrubItems || []);
|
|
82
86
|
}
|
|
83
87
|
getLoggerWithContext() {
|
|
84
88
|
const traceContext = getCurrentTraceContext();
|
|
85
89
|
return this.logger.child({
|
|
86
90
|
traceId: traceContext.traceId,
|
|
87
|
-
spanId: traceContext.spanId
|
|
91
|
+
spanId: traceContext.spanId,
|
|
88
92
|
});
|
|
89
93
|
}
|
|
94
|
+
scrub(input) {
|
|
95
|
+
const returnValue = structuredClone(input);
|
|
96
|
+
if (Array.isArray(input)) {
|
|
97
|
+
return returnValue.map((item) => this.scrub(item));
|
|
98
|
+
}
|
|
99
|
+
if (returnValue !== null && typeof returnValue === 'object') {
|
|
100
|
+
const result = {};
|
|
101
|
+
for (const [key, value] of Object.entries(returnValue)) {
|
|
102
|
+
if (this.keysToScrub.has(key)) {
|
|
103
|
+
result[key] = '****';
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
result[key] = this.scrub(value);
|
|
107
|
+
}
|
|
108
|
+
return result;
|
|
109
|
+
}
|
|
110
|
+
return returnValue;
|
|
111
|
+
}
|
|
112
|
+
append(data) {
|
|
113
|
+
this.logger = this.logger.child(data);
|
|
114
|
+
return this.logger;
|
|
115
|
+
}
|
|
90
116
|
trace(data, msg, ...args) {
|
|
91
|
-
this.getLoggerWithContext().trace({ ...data }, msg, ...args);
|
|
117
|
+
this.getLoggerWithContext().trace(this.scrub({ ...data }), msg, ...args);
|
|
92
118
|
}
|
|
93
119
|
debug(data, msg, ...args) {
|
|
94
|
-
this.getLoggerWithContext().debug({ ...data }, msg, ...args);
|
|
120
|
+
this.getLoggerWithContext().debug(this.scrub({ ...data }), msg, ...args);
|
|
95
121
|
}
|
|
96
122
|
info(data, msg, ...args) {
|
|
97
|
-
this.getLoggerWithContext().info({ ...data }, msg, ...args);
|
|
123
|
+
this.getLoggerWithContext().info(this.scrub({ ...data }), msg, ...args);
|
|
98
124
|
}
|
|
99
125
|
warn(data, msg, ...args) {
|
|
100
|
-
this.getLoggerWithContext().warn({ ...data }, msg, ...args);
|
|
126
|
+
this.getLoggerWithContext().warn(this.scrub({ ...data }), msg, ...args);
|
|
101
127
|
}
|
|
102
128
|
error(data, msg, ...args) {
|
|
103
|
-
this.getLoggerWithContext().error({ ...data }, msg, ...args);
|
|
129
|
+
this.getLoggerWithContext().error(this.scrub({ ...data }), msg, ...args);
|
|
104
130
|
}
|
|
105
131
|
fatal(data, msg, ...args) {
|
|
106
|
-
this.getLoggerWithContext().fatal({ ...data }, msg, ...args);
|
|
132
|
+
this.getLoggerWithContext().fatal(this.scrub({ ...data }), msg, ...args);
|
|
107
133
|
}
|
|
108
134
|
// Create a new span and run function within it
|
|
109
135
|
withSpan(name, fn) {
|
|
@@ -113,6 +139,7 @@ class TracedLogger {
|
|
|
113
139
|
traceId: spanContext.traceId,
|
|
114
140
|
spanId: spanContext.spanId,
|
|
115
141
|
operation: name,
|
|
142
|
+
url: spanContext.url,
|
|
116
143
|
});
|
|
117
144
|
spanLogger.debug(`Starting span: ${name}`);
|
|
118
145
|
return exports.traceContextStorage.run(spanContext, () => {
|
|
@@ -135,6 +162,7 @@ class TracedLogger {
|
|
|
135
162
|
traceId: spanContext.traceId,
|
|
136
163
|
spanId: spanContext.spanId,
|
|
137
164
|
operation: name,
|
|
165
|
+
url: spanContext.url,
|
|
138
166
|
});
|
|
139
167
|
spanLogger.debug(`Starting span: ${name}`);
|
|
140
168
|
return exports.traceContextStorage.run(spanContext, async () => {
|
package/src/lib/logging.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../../../libs/logging/src/lib/logging.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../../../../libs/logging/src/lib/logging.ts"],"names":[],"mappings":"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"}
|