mirror of https://github.com/jitsi/jitsi-meet
parent
94bd6bc330
commit
7c8ca45d9a
@ -0,0 +1,59 @@ |
|||||||
|
/* global APP */ |
||||||
|
|
||||||
|
/** |
||||||
|
* Implements logs storage through the CallStats. |
||||||
|
*/ |
||||||
|
export default class JitsiMeetLogStorage { |
||||||
|
|
||||||
|
/** |
||||||
|
* Creates new <tt>JitsiMeetLogStorage</tt> |
||||||
|
*/ |
||||||
|
constructor() { |
||||||
|
/** |
||||||
|
* Counts each log entry, increases on every batch log entry stored. |
||||||
|
* @type {number} |
||||||
|
*/ |
||||||
|
this.counter = 1; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Called by the <tt>LogCollector</tt> to store a series of log lines into |
||||||
|
* batch. |
||||||
|
* @param {string|object[]}logEntries an array containing strings |
||||||
|
* representing log lines or aggregated lines objects. |
||||||
|
*/ |
||||||
|
storeLogs(logEntries) { |
||||||
|
|
||||||
|
let logJSON = '{"log' + this.counter + '":"\n'; |
||||||
|
for (let i = 0, len = logEntries.length; i < len; i++) { |
||||||
|
let logEntry = logEntries[i]; |
||||||
|
if (typeof logEntry === 'object') { |
||||||
|
// Aggregated message
|
||||||
|
logJSON += '(' + logEntry.count + ') ' + logEntry.text + '\n'; |
||||||
|
} else { |
||||||
|
// Regular message
|
||||||
|
logJSON += logEntry + '\n'; |
||||||
|
} |
||||||
|
} |
||||||
|
logJSON += '"}'; |
||||||
|
|
||||||
|
this.counter += 1; |
||||||
|
|
||||||
|
// Try catch was used, because there are many variables
|
||||||
|
// on the way that could be uninitialized if the storeLogs
|
||||||
|
// attempt would be made very early (which is unlikely)
|
||||||
|
try { |
||||||
|
// Currently it makes sense to store the log only
|
||||||
|
// if CallStats is enabled
|
||||||
|
if (APP.logCollectorStarted |
||||||
|
&& APP.conference |
||||||
|
&& APP.conference.isCallstatsEnabled()) { |
||||||
|
APP.conference.logJSON(logJSON); |
||||||
|
} |
||||||
|
} catch (error) { |
||||||
|
// NOTE console is intentional here
|
||||||
|
console.error( |
||||||
|
"Failed to store the logs: ", logJSON, error); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue