-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrewriters.js
43 lines (41 loc) · 1.53 KB
/
rewriters.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var _ = require('lodash');
var prjctdir = require('cwd')();
var pkg = require(prjctdir + '/package.json').name.toLowerCase();
var SECERTS = ['password', 'pwd', 'auth', 'authorization', 'cfg'];
module.exports = {
/* Add NODE_ENV and the main package name */
generalInfo: function(level, msg, meta) {
meta = meta || {};
meta.NODE_ENV = process.env.NODE_ENV;
meta.GENERATED_BY = pkg;
meta.HOST_NAME = process.env.DOCKER_HOST_NAME;
meta.HOST_IP = process.env.DOCKER_HOST_IP;
return meta;
},
/* Add x-request-id if this log message is generated by express-winston */
xRequestId: function(level, msg, meta) {
meta = meta || {};
if (meta.req && meta.req.headers && meta.req.headers && meta.req.headers['x-request-id']) {
meta['x-request-id'] = meta.req.headers['x-request-id'];
}
return meta;
},
/* change any value of meta[key] if this key is on of #SECRET keys */
redactCriticalData: function(level, msg, meta) {
meta = meta || {};
var tmeta = _.cloneDeep(meta);
var _redact = function(obj) {
Object.keys(obj).forEach(function(key) {
if (obj[key] !== null && typeof obj[key] === 'object') {
return _redact(obj[key]);
} else {
if (SECERTS.includes(key.toLowerCase())) {
obj[key] = '<REDACTED>';
}
}
});
};
_redact(tmeta);
return tmeta;
}
}