Skip to content

Instantly share code, notes, and snippets.

@zachlendon
Created November 13, 2012 03:52
Show Gist options
  • Select an option

  • Save zachlendon/4063826 to your computer and use it in GitHub Desktop.

Select an option

Save zachlendon/4063826 to your computer and use it in GitHub Desktop.
LocalStorageAppender append
LocalStorageAppender.prototype.append = function(loggingEvent) {
var appender = this;
var getFormattedMessage = function() {
var layout = appender.getLayout();
var formattedMessage = layout.format(loggingEvent);
if (layout.ignoresThrowable() && loggingEvent.exception) {
formattedMessage += loggingEvent.getThrowableStrRep();
}
return formattedMessage;
};
if (store.enabled) {
var formattedMessage = getFormattedMessage();
store.set(JSON.stringify(new Date().getTime()), formattedMessage);
if (loggingEvent.level == Level.FATAL) {
var allStoreMessages = store.getAll();
var logMessageStr = loggingEvent.messages[0] + " - previous javascript log messages:";
for(var prop in allStoreMessages) {
if(allStoreMessages.hasOwnProperty(prop)) {
var storeMessage = allStoreMessages[prop];
if (storeMessage instanceof Array) {
logMessageStr += storeMessage[0] + "\n";
} else {
logMessageStr += storeMessage + "\n";
}
}
}
$.ajax({
type: 'POST',
url: '/logging',
data: 'level=' + loggingEvent.level + '&message=' + logMessageStr,
async: true,
success: function(r){
store.clear();
}
});
}
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment