rewireLoggingToElement(
() => document.getElementById("log"),
() => document.getElementById("log-container"),
true
);
function rewireLoggingToElement(eleLocator, eleOverflowLocator, autoScroll) {
fixLoggingFunc("log");
function fixLoggingFunc(name) {
console.old = console.log;
console.log = function (...arg) {
const output = produceOutput(name, arg);
const eleLog = eleLocator();
if (autoScroll) {
const eleContainerLog = eleOverflowLocator();
const isScrolledToBottom =
eleContainerLog.scrollHeight - eleContainerLog.clientHeight <=
eleContainerLog.scrollTop + 1;
eleLog.innerHTML += output + "
";
if (isScrolledToBottom) {
eleContainerLog.scrollTop =
eleContainerLog.scrollHeight - eleContainerLog.clientHeight;
}
} else {
eleLog.innerHTML += output + "
";
}
};
}
function produceOutput(name, args) {
arg = args[0].replace("%c", "");
return '' + arg + " ";
}
}