-
Notifications
You must be signed in to change notification settings - Fork 0
/
log.js
35 lines (31 loc) · 949 Bytes
/
log.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
const VERBOSITY_VALUES = {
"ERROR": 10,
"WARN": 20,
"INFO": 30,
"DEBUG": 40
};
var output_verbosity = process.env.AMZN_RECS_LOG_LEVEL ? VERBOSITY_VALUES[process.env.AMZN_RECS_LOG_LEVEL] : "DEBUG";
var log_msg = function(level, obj, msg, verbosity) {
if (verbosity > output_verbosity) {
return;
}
var details = {};
if (typeof obj !== 'object') {
details.value = obj;
} else if (obj != null) {
details = obj;
}
var logline = {
timestamp: (new Date()).toUTCString(),
level: level,
message: msg,
details: details
};
console.log(JSON.stringify(logline));
};
module.exports = {
error: function(obj, msg) { log_msg("ERROR", obj, msg, VERBOSITY_VALUES["ERROR"]); },
warn: function(obj, msg) { log_msg(" WARN", obj, msg, VERBOSITY_VALUES["WARN"]); },
info: function(obj, msg) { log_msg(" INFO", obj, msg, VERBOSITY_VALUES["INFO"]); },
debug: function(obj, msg) { log_msg("DEBUG", obj, msg, VERBOSITY_VALUES["DEBUG"]); }
};