Skip to content

Instantly share code, notes, and snippets.

@thales17
Created August 1, 2017 19:44
Show Gist options
  • Save thales17/ae82995048469b659bad712b2461d794 to your computer and use it in GitHub Desktop.
Save thales17/ae82995048469b659bad712b2461d794 to your computer and use it in GitHub Desktop.
Prettify structured logs in the browser
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div>
<p id="logs" class="log"></p>
</div>
</body>
</html>
function addStructuredLog(logJSON) {
var log = JSON.parse(logJSON);
var logDate = new Date(log.time);
var msg = log.msg;
var level = log.level;
var levelClasses = {
'debug': 'level-debug',
'info': 'level-info',
'warn': 'level-warning',
'warning': 'level-warning',
'error': 'level-error',
'fatal': 'level-fatal',
'panic': 'level-fatal'
}
var levelClass = 'level-default';
if(level in levelClasses) {
levelClass = levelClasses[level];
}
delete log.level;
delete log.time;
delete log.msg;
var kv = "";
for(k in log) {
kv += `<span class="log-key">${k}</span><span>=${log[k]}\t</span>`;
}
$('#logs').prepend(`<span>${logDate} |</span><span class="${levelClass}">${level.toUpperCase().slice(0,4)}</span><span>| ${msg}\t</span>${kv}<br>`);
}
.log {
color: black;
font-family: Lucida Console, Courier, monospace;
}
.log-time {
color: #636363;
}
.level-debug {
color: #DD1C77;
}
.level-info {
color: #14ACBE;
}
.level-warning {
color: #FEB800;
}
.level-error {
color: #FF0000;
}
.level-fatal {
color: #FF0000;
}
.level-default {
color: #DD1C77;
}
.log-key {
font-weight: bold;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment