-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.js
73 lines (57 loc) · 1.66 KB
/
index.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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
var winston = require('winston');
var core = require('./core');
exports.levels = core.levels;
exports.colors = core.colors;
exports.priorities = core.priorities;
exports.MIN_LEVEL = core.MIN_LEVEL;
exports.MAX_LEVEL = core.MAX_LEVEL;
exports.observe = function observe(logger, level) {
level = level || 'debug';
// If process.logging isn't defined, bounce
if (!process.logging) return;
if (!process.logging.observe) {
logger.warn(
'process.logging.observe is undefined - are you using @jfhbrook/logref?'
);
return;
}
process.logging.observe(function onLog(log) {
log.on('log', function logToWinston(msg, ctx) {
var event = {
level: level,
message: (log.formatter || process.logging.formatter)(msg, ctx),
logging: {
name: log.name
}
};
Object.keys(ctx).forEach(function (k) {
event[k] = ctx[k];
});
logger.log(event);
});
});
};
exports.formatter = winston.format.cli({colors: core.colors});
exports.Logger = winston.Logger;
exports.createLogger = function createLogger(opts) {
opts = opts || {};
var meta = opts.meta || {};
var level = opts.level || 'info';
var logrefLevel = (opts.logref || {}).level || 'debug';
var tx = new winston.transports.Console();
let formatter = exports.formatter;
if (opts.colors) {
formatter = winston.format.cli({colors: opts.colors});
}
var logger = winston.createLogger({
level: opts.level,
levels: core.levels,
format: formatter,
defaultMeta: meta,
transports: [tx],
exceptionHandlers: [tx],
rejectionHandlers: [tx]
});
exports.observe(logger, logrefLevel);
return logger;
};