dashboard/shell/plugins/console.js

35 lines
866 B
JavaScript

/* eslint-disable no-console */
export default () => {
const logTypes = ['warn', 'error'];
const MAX_LOGS_STORED = 400;
if (!process.env.dev) {
console.logLog = console.log.bind(console);
console.infoLog = console.info.bind(console);
logTypes.push('log');
logTypes.push('info');
}
console.warnLog = console.warn.bind(console);
console.errorLog = console.error.bind(console);
console.logs = [];
logTypes.forEach((type) => {
console[type] = function() {
const dataLogged = {
type,
dateTimeUtc: new Date().toUTCString(),
timestamp: Date.now(),
data: Array.from(arguments)
};
if (console.logs.length >= MAX_LOGS_STORED) {
console.logs.shift();
}
console.logs.push(dataLogged);
console[`${ type }Log`].apply(console, arguments);
};
});
};