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+' '
}
}