openreplay/frontend/app/logger/index.js
2023-03-24 11:54:35 +01:00

58 lines
1.2 KiB
JavaScript

import { options } from 'App/dev/console';
function log(...args) {
if (!window.env.PRODUCTION || options.verbose) {
if (Object.keys(groupTm).length > 0) {
console.groupEnd();
}
console.log(...args);
}
}
function warn(...args) {
if (!window.env.PRODUCTION || options.verbose) {
console.warn(...args);
}
options.exceptionsLogs.push(args)
}
function error(...args) {
if (!window.env.PRODUCTION || options.verbose) {
console.error(...args);
options.exceptionsLogs.push(args)
}
}
let groupTm = {};
let groupedLogs = {};
function group(groupName, ...args) {
if (!window.env.PRODUCTION || options.verbose) {
if (groupTm[groupName]) {
clearTimeout(groupTm[groupName])
groupTm[groupName] = null
} else {
groupedLogs[groupName] = []
}
groupedLogs[groupName].push(args);
groupTm[groupName] = setTimeout(() => {
console.groupCollapsed(groupName)
groupedLogs[groupName].forEach((log) => {
console.log(...log)
})
console.groupEnd()
delete groupTm[groupName]
delete groupedLogs[groupName]
}, 500)
options.exceptionsLogs.push(args)
}
}
export default {
info: log,
log,
warn,
error,
group,
};