This repository was archived by the owner on Apr 28, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
74 lines (65 loc) · 1.45 KB
/
index.js
File metadata and controls
74 lines (65 loc) · 1.45 KB
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
74
const bunyan = require('bunyan')
const { EmailStream } = require('bunyan-emailstream')
module.exports = function createLogger ({ name, logLevel, ip, email }) {
const streams = []
streams.push({
stream: process.stdout,
level: logLevel
})
if (email && email.transport) {
const emailStream = new EmailStream(
{
from: email.from || 'noreply@imbox.se',
to: email.to || 'teknik@imbox.se'
},
email.transport
)
emailStream.formatSubject = formatSubject
emailStream.formatBody = formatBody
streams.push({
type: 'raw',
level: 'fatal',
stream: emailStream
})
}
const opts = {
name: name,
streams: streams,
serializers: bunyan.stdSerializers
}
if (ip) {
opts.ip = ip
}
return bunyan.createLogger(opts)
}
function formatSubject ({ level, name, pid, hostname, ip }) {
return `[${LEVELS[level]}] ${name}/${pid} on ${hostname}${
ip ? '/' + ip : ''
}`
}
function formatBody ({ name, hostname, pid, time, ip, msg, err }) {
var rows = []
rows.push('* name: ' + name)
rows.push('* hostname: ' + hostname)
rows.push('* pid: ' + pid)
rows.push('* time: ' + time)
if (ip) {
rows.push('* ip: ' + ip)
}
if (msg) {
rows.push('* msg: ' + msg)
}
if (err) {
rows.push('* err.stack: ' + err.stack)
}
return rows.join('\n')
}
// Levels
var LEVELS = {
10: 'TRACE',
20: 'DEBUG',
30: 'INFO',
40: 'WARN',
50: 'ERROR',
60: 'FATAL'
}