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
|
Meteor.startup(() => {
Winston = require('winston');
require('winston-zulip');
const fs = require('fs');
//remove default logger
Winston.remove(Winston.transports.Console);
const loggerEnable = process.env.LOGGER_ENABLE || false;
if (loggerEnable) {
Winston.log('info', 'logger is enable');
const loggers = process.env.LOGGERS.split(',') || 'console';
Winston.log('info', `Loggers selected : ${ process.env.LOGGERS }, if empty default is console`);
if (loggers.includes('console')) {
Winston.add(Winston.transports.Console, {
json: true,
timestamp: true,
});
}
if (loggers.includes('file')) {
//create logs directory
fs.mkdir('logs', (err) => {
if (err) throw err;
});
const fileName = `logs/${process.env.LOGGER_FILE_NAME}` || 'logs/server.log';
Winston.add(Winston.transports.File, {
filename: fileName,
json: true,
options: {
flags: 'a+',
},
});
}
if (loggers.includes('zulip')) {
const loggerZulipUsername = process.env.LOGGER_ZULIP_USERNAME;
const loggerZulipApikey = process.env.LOGGER_ZULIP_APIKEY;
const loggerZulipRealm = process.env.LOGGER_ZULIP_REALM;
const loggerZulipTo = process.env.LOGGER_ZULIP_TO || 'logs';
const loggerZulipSubject = process.env.LOGGER_ZULIP_SUBJECT || 'wekan';
const zulipConfig = {
zulipUsername: loggerZulipUsername,
zulipApikey: loggerZulipApikey,
zulipRealm: loggerZulipRealm,
zulipTo: loggerZulipTo,
zulipSubject: loggerZulipSubject,
};
Winston.add(Winston.transports.Zulip, zulipConfig);
Winston.log('info', `zulipconfig ${zulipConfig}`);
}
}
Winston.log('info', 'Logger is completly instanciate');
});
|