Merge branch 'meteor-1.4-LOGGER' of https://github.com/huneau/wekan into huneau-meteor-1.4-LOGGER

This commit is contained in:
Lauri Ojansivu 2017-04-27 19:39:13 +03:00
commit 0110e933a5
4 changed files with 166 additions and 2 deletions

View file

@ -51,7 +51,9 @@
"object-shorthand": 2,
"prefer-const": 2,
"prefer-spread": 2,
"prefer-template": 2
"prefer-template": 2,
"no-console":"off",
"no-unused-vars":"warn"
},
"globals": {
"Meteor": false,
@ -122,6 +124,7 @@
"Emoji": true,
"Checklists": true,
"Settings": true,
"InvitationCodes": true
"InvitationCodes": true,
"Winston":true
}
}

View file

@ -22,6 +22,8 @@
"dependencies": {
"babel-runtime": "^6.23.0",
"meteor-node-stubs": "^0.2.6",
"winston": "^2.3.1",
"winston-zulip": "0.0.6",
"xss": "^0.3.3"
}
}

59
server/logger.js Normal file
View file

@ -0,0 +1,59 @@
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;
console.log('here1');
console.log(loggerEnable);
if (loggerEnable) {
console.log('here2');
const loggers = process.env.LOGGERS.split(',') || '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';
Winston.add(Winston.transports.Zulip, {
zulipUsername: loggerZulipUsername,
zulipApikey: loggerZulipApikey,
zulipRealm: loggerZulipRealm,
zulipTo: loggerZulipTo,
zulipSubject: loggerZulipSubject,
});
}
}
});

100
server/observableChanges.js Normal file
View file

@ -0,0 +1,100 @@
class Message {
constructor(userId, type, method, doc, selector, fieldNames, modifier) {
this.userId = userId;
this.type = type;
this.method = method;
this.doc = doc;
this.selector;
this.fieldNames = fieldNames;
this.modifier = modifier;
}
}
//------------- CARDS --------------------
Cards.before.update(function (userId, doc, fieldNames, modifier, options) {
Winston.log('info', new Message(userId, 'card', 'update', doc, null, fieldNames, modifier));
});
Cards.before.remove(function (userId, doc) {
Winston.log('info', new Message(userId, 'card', 'remove', doc));
});
Cards.before.insert(function (userId, doc) {
Winston.log('info', new Message(userId, 'card', 'insert', doc));
});
Cards.before.upsert(function (userId, selector, modifier, options) {
Winston.log('info', new Message(userId, 'card', 'update', null, selector, null, modifier));
});
//------------- BOARDS --------------------
Boards.before.update(function (userId, doc, fieldNames, modifier, options) {
Winston.log('info', new Message(userId, 'board', 'update', doc, null, fieldNames, modifier));
});
Boards.before.remove(function (userId, doc) {
Winston.log('info', new Message(userId, 'board', 'remove', doc));
});
Boards.before.insert(function (userId, doc) {
Winston.log('info', new Message(userId, 'board', 'insert', doc));
});
Boards.before.upsert(function (userId, selector, modifier, options) {
Winston.log('info', new Message(userId, 'board', 'update', null, selector, null, modifier));
});
//------------- LISTS --------------------
Lists.before.update(function (userId, doc, fieldNames, modifier, options) {
Winston.log('info', new Message(userId, 'list', 'update', doc, null, fieldNames, modifier));
});
Lists.before.remove(function (userId, doc) {
Winston.log('info', new Message(userId, 'list', 'remove', doc));
});
Lists.before.insert(function (userId, doc) {
Winston.log('info', new Message(userId, 'list', 'insert', doc));
});
Lists.before.upsert(function (userId, selector, modifier, options) {
Winston.log('info', new Message(userId, 'list', 'update', null, selector, null, modifier));
});
//------------- CARD COMMENTS --------------------
CardComments.before.update(function (userId, doc, fieldNames, modifier, options) {
Winston.log('info', new Message(userId, 'card-comments', 'update', doc, null, fieldNames, modifier));
});
CardComments.before.remove(function (userId, doc) {
Winston.log('info', new Message(userId, 'card-comments', 'remove', doc));
});
CardComments.before.insert(function (userId, doc) {
Winston.log('info', new Message(userId, 'card-comments', 'insert', doc));
});
CardComments.before.upsert(function (userId, selector, modifier, options) {
Winston.log('info', new Message(userId, 'card-comments', 'update', null, selector, null, modifier));
});
//------------- USERS --------------------
Users.before.update(function (userId, doc, fieldNames, modifier, options) {
Winston.log('info', new Message(userId, 'user', 'update', doc, null, fieldNames, modifier));
});
Users.before.remove(function (userId, doc) {
Winston.log('info', new Message(userId, 'user', 'remove', doc));
});
Users.before.insert(function (userId, doc) {
Winston.log('info', new Message(userId, 'user', 'insert', doc));
});
Users.before.upsert(function (userId, selector, modifier, options) {
Winston.log('info', new Message(userId, 'user', 'update', null, selector, null, modifier));
});