Skip to content

Commit b20e22f

Browse files
committed
Also mask properties of errors, fix #214
1 parent 97dbd37 commit b20e22f

2 files changed

Lines changed: 30 additions & 3 deletions

File tree

examples/nodejs/index2.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,24 @@ const loggerMap = new Logger({ name: 'mapLogger'});
7070
let map = new Map();
7171
map.set('foo', 'bar');
7272
loggerMap.debug('My Map: ', map) // prints in console "DEBUG myLogger My Map: {}"
73+
74+
75+
////////////////////////////
76+
77+
const error = new TypeError();
78+
Object.assign(error, {
79+
extensions: {
80+
serviceName: 'upstream-service',
81+
variables: {
82+
firstName: 'foo',
83+
phoneNumber: 'bar'
84+
}
85+
}
86+
});
87+
88+
const log = new Logger({
89+
maskValuesOfKeys: ["firstName", "phoneNumber"],
90+
type: "json"
91+
})
92+
93+
log.info(error);

src/BaseLogger.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,9 +200,7 @@ export class BaseLogger<LogObj> {
200200
seen.push(source);
201201
}
202202

203-
return isError(source)
204-
? source // dont copy Error
205-
: isBuffer(source)
203+
return isBuffer(source)
206204
? source // dont copy Buffer
207205
: source instanceof Map ?
208206
new Map(source)
@@ -212,6 +210,14 @@ export class BaseLogger<LogObj> {
212210
? source.map((item) => this._recursiveCloneAndMaskValuesOfKeys(item, keys, seen))
213211
: source instanceof Date
214212
? new Date(source.getTime())
213+
: isError(source)
214+
? Object.getOwnPropertyNames(source).reduce((o, prop) => {
215+
// mask
216+
o[prop] = keys.includes(this.settings?.maskValuesOfKeysCaseInsensitive !== true ? prop : prop.toLowerCase())
217+
? this.settings.maskPlaceholder
218+
: this._recursiveCloneAndMaskValuesOfKeys((source as { [key: string]: unknown })[prop], keys, seen);
219+
return o;
220+
}, source)
215221
: source != null && typeof source === "object"
216222
? Object.getOwnPropertyNames(source).reduce((o, prop) => {
217223
// mask

0 commit comments

Comments
 (0)