From 74fed3a3c9b26c481d8f92a8cf968a301081bf12 Mon Sep 17 00:00:00 2001
From: Anton Georgiev <anto.georgiev@gmail.com>
Date: Fri, 28 Jun 2019 21:40:06 +0000
Subject: [PATCH] restructure logs so extra params are inside extraInfo {}

---
 .../log-client/server/methods/logClient.js    | 37 ++++++++-----------
 .../imports/startup/client/logger.js          | 11 +++++-
 2 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/bigbluebutton-html5/imports/api/log-client/server/methods/logClient.js b/bigbluebutton-html5/imports/api/log-client/server/methods/logClient.js
index d1f1674da3..f42c079f12 100755
--- a/bigbluebutton-html5/imports/api/log-client/server/methods/logClient.js
+++ b/bigbluebutton-html5/imports/api/log-client/server/methods/logClient.js
@@ -1,37 +1,30 @@
 import Logger from '/imports/startup/server/logger';
 import Users from '/imports/api/users';
 
-const logClient = function (type, log, fullInfo = {}) {
+const logClient = function (type, logDescription, logCode = 'was_not_provided', extraInfo, userInfo = {}) {
   const SERVER_CONN_ID = this.connection.id;
   const User = Users.findOne({ connectionId: SERVER_CONN_ID });
-  const logContents = { fullInfo };
+  const logContents = {
+    logCode,
+    logDescription,
+    extraInfo,
+    userInfo,
+  };
 
   if (User) {
-    if ((fullInfo.credentials && User.meetingId === fullInfo.credentials.meetingId)
-      || ((fullInfo.meetingId && User.meetingId === fullInfo.meetingId))) {
-      logContents.validUser = 'valid';
+    if ((userInfo.credentials && User.meetingId === userInfo.credentials.meetingId)
+      || ((userInfo.meetingId && User.meetingId === userInfo.meetingId))) {
+      logContents.extraInfo.validUser = 'valid';
     } else {
-      logContents.validUser = 'invalid';
+      logContents.extraInfo.validUser = 'invalid';
     }
   } else {
-    logContents.validUser = 'notFound';
+    logContents.extraInfo.validUser = 'notFound';
   }
 
-  const topic = typeof logContents === 'Object' ? logContents.topic : null;
-
-  if (typeof log === 'string' || log instanceof String) {
-    Logger.log({
-      level: type,
-      message: `${topic || 'CLIENT'} LOG: ${log} `,
-      meta: logContents,
-    });
-  } else {
-    Logger.log({
-      level: type,
-      message: `${topic || 'CLIENT'} LOG: ${JSON.stringify(log)} `,
-      meta: logContents,
-    });
-  }
+  // If I don't pass message, logs will start with `undefined`
+  Logger.log({ message: JSON.stringify(logContents), level: type });
+  // Logger.log({ message: 'client->server', level: type, logContents });
 };
 
 export default logClient;
diff --git a/bigbluebutton-html5/imports/startup/client/logger.js b/bigbluebutton-html5/imports/startup/client/logger.js
index 4ba4cd3a6b..982c1ea38b 100755
--- a/bigbluebutton-html5/imports/startup/client/logger.js
+++ b/bigbluebutton-html5/imports/startup/client/logger.js
@@ -25,7 +25,7 @@ class ServerLoggerStream extends ServerStream {
 
     this.rec = rec;
     if (fullInfo.meetingId != null) {
-      this.rec.clientInfo = fullInfo;
+      this.rec.userInfo = fullInfo;
     }
     this.rec.clientBuild = Meteor.settings.public.app.html5ClientBuild;
     return super.write(this.rec);
@@ -39,7 +39,14 @@ class MeteorStream {
 
     this.rec = rec;
     if (fullInfo.meetingId != null) {
-      Meteor.call('logClient', nameFromLevel[this.rec.level], this.rec.msg, fullInfo);
+      Meteor.call(
+        'logClient',
+        nameFromLevel[this.rec.level],
+        this.rec.msg,
+        this.rec.logCode,
+        this.rec.extraInfo || {},
+        fullInfo,
+      );
     } else {
       Meteor.call('logClient', nameFromLevel[this.rec.level], this.rec.msg);
     }
-- 
GitLab