diff --git a/background.html b/background.html
index 84d354ad..196b5fee 100644
--- a/background.html
+++ b/background.html
@@ -256,6 +256,7 @@
+
diff --git a/js/debugLog.js b/js/debugLog.js
new file mode 100644
index 00000000..53bf23eb
--- /dev/null
+++ b/js/debugLog.js
@@ -0,0 +1,37 @@
+/*
+ * vim: ts=4:sw=4:expandtab
+ */
+(function () {
+ 'use strict';
+ var MAX_MESSAGES = 1000;
+ var PHONE_REGEX = /\+\d{7,12}(\d{3})/g;
+ var debugLog = [];
+ if (window.console) {
+ console._log = console.log;
+ console.log = function(thing){
+ console._log(thing);
+ if (debugLog.length > MAX_MESSAGES) {
+ debugLog.shift();
+ }
+ var str = ('' + thing).replace(PHONE_REGEX, "+[REDACTED]$1");
+ debugLog.push(str);
+ };
+ console.get = function() {
+ return debugLog.join('\n');
+ };
+ console.post = function(log) {
+ if (log === undefined) {
+ log = console.get();
+ }
+ return new Promise(function(resolve) {
+ $.post('https://api.github.com/gists', textsecure.utils.jsonThing({
+ "public": true,
+ "files": { "debugLog.txt": { "content": log } }
+ })).then(function(response) {
+ console._log('Posted debug log to ', response.html_url);
+ resolve(response.html_url);
+ }).fail(resolve);
+ });
+ };
+ }
+})();