NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Log Highlighter
// @version 1.3
// @author aark
// @grant none
// @license MIT
// @include https://storage.*
// @include https://paste.*
// @updateURL https://openuserjs.org/meta/rualark/Log_Highlighter.meta.js
// @downloadURL https://openuserjs.org/src/scripts/rualark/Log_Highlighter.user.js
// ==/UserScript==
function highlight(st, pattern, color, word=true) {
let rpattern = pattern;
if (word) {
rpattern = '\\b' + rpattern + '\\b';
}
rpattern = `(${rpattern})(?!(.(?!<span ))*<\/span>)`;
const regexp = new RegExp(rpattern, 'gi');
return st.replace(regexp, `<span style="color:${color}">${pattern}</span>`)
}
function highlightInSt(st) {
st = highlight(st, '\nE ', 'red', false);
st = highlight(st, 'critical', 'red');
st = highlight(st, 'fatal', 'red');
st = highlight(st, 'unable to', 'red');
st = highlight(st, 'did not pass', 'red');
st = highlight(st, 'teardown', 'red');
st = highlight(st, 'object has no attribute', 'red');
st = highlight(st, 'AttributeError', 'red');
st = highlight(st, 'Unable to', 'red');
st = highlight(st, 'No pairs found', 'red');
st = highlight(st, 'Core dump', 'red');
st = highlight(st, 'Warnings', 'red');
st = highlight(st, 'Warning', 'red');
st = highlight(st, 'AssertionError', 'red');
st = highlight(st, 'Errors', 'red');
st = highlight(st, 'Error', 'red');
st = highlight(st, 'Failed', 'red');
st = highlight(st, 'Failure', 'red');
st = highlight(st, 'Fail', 'red');
st = highlight(st, 'Killed', 'red');
st = highlight(st, 'uncaught exception', 'red');
st = highlight(st, 'unhandled exception', 'red');
st = highlight(st, 'Exceptions', 'red');
st = highlight(st, 'Exception', 'red');
st = highlight(st, 'Terminated', 'red');
st = highlight(st, 'Termination', 'red');
st = highlight(st, 'Successful', 'green');
st = highlight(st, 'Success', 'green');
st = highlight(st, 'Good', 'green');
st = highlight(st, 'OK', 'green');
return st;
}
function highlightLog() {
let els = document.getElementsByTagName("*");
for(let i = 0, l = els.length; i < l; i++) {
let el = els[i];
let st = el.innerHTML;
if (!st.includes('\n')) continue;
st = highlightInSt(st);
el.innerHTML = st;
}
}
setTimeout(highlightLog, 2000);