summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorhuneau romain <huneau.romain@gmail.com>2017-04-19 16:16:31 +0200
committerhuneau romain <huneau.romain@gmail.com>2017-04-19 16:16:31 +0200
commit00a357cd7067cf5c8b055deacfe2e9bc28b06c5e (patch)
treecb889058ca1943ba27a36aa47054bb002633f3ee /server
parent0c8cfe2e0b80f25caff76b758b043dbe9e52ed42 (diff)
downloadwekan-00a357cd7067cf5c8b055deacfe2e9bc28b06c5e.tar.gz
wekan-00a357cd7067cf5c8b055deacfe2e9bc28b06c5e.tar.bz2
wekan-00a357cd7067cf5c8b055deacfe2e9bc28b06c5e.zip
add console, file, and zulip logger on database changes
Diffstat (limited to 'server')
-rw-r--r--server/logger.js59
-rw-r--r--server/observableChanges.js100
2 files changed, 159 insertions, 0 deletions
diff --git a/server/logger.js b/server/logger.js
new file mode 100644
index 00000000..376e30aa
--- /dev/null
+++ b/server/logger.js
@@ -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,
+ });
+ }
+
+ }
+});
+
diff --git a/server/observableChanges.js b/server/observableChanges.js
new file mode 100644
index 00000000..390ae093
--- /dev/null
+++ b/server/observableChanges.js
@@ -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));
+});