-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
63 lines (59 loc) · 1.84 KB
/
app.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
'use strict';
var winston = require('winston');
require('winston-papertrail').Papertrail;
var pm2 = require('pm2');
var pmx = require('pmx');
pmx.initModule({
widget: {
logo: 'https://papertrail.global.ssl.fastly.net/images/pt-logo.svg?1482187727',
theme: ['#141A1F', '#222222', '#3ff', '#3ff'],
el: {
probes: false,
actions: false
},
block: {
actions: false,
issues: false,
meta: false,
}
}
}, function(err, conf) {
var loggerObj = {};
var log = function(level, name, message, packet) {
name = name.trim();
if (name === 'pm2-papertrail' || name === 'pm2-auto-pull') {
return;
}
if (!loggerObj[name]) {
loggerObj[name] = createLogger(name);
}
loggerObj[name][level](message);
};
var createLogger = function(program) {
return new (winston.Logger)({
transports: [
new (winston.transports.Papertrail)({
port: conf.port,
host: conf.host,
program: program,
colorize: true,
level: 'info'
})
]
});
};
pm2.connect(function() {
console.log('info', 'PM2: forwarding to papertrail');
pm2.launchBus(function(err, bus) {
bus.on('log:PM2', function(packet) {
//log('info', 'PM2', packet.data, packet);
});
bus.on('log:out', function(packet) {
log('info', packet.process.name, packet.data.replace(/\r?\n|\r/g, ''), packet);
});
bus.on('log:err', function(packet) {
log('error', packet.process.name, packet.data.replace(/\r?\n|\r/g, ''), packet);
});
});
});
});