diff --git a/servicelog/scraper/json.go b/servicelog/scraper/json.go
index fa695ae4..370b2c91 100644
--- a/servicelog/scraper/json.go
+++ b/servicelog/scraper/json.go
@@ -4,6 +4,7 @@ import (
 	"bufio"
 	"encoding/json"
 	"io"
+	"time"
 
 	log "github.com/sirupsen/logrus"
 
@@ -26,10 +27,9 @@ func (j *JSON) StartScraping(reader io.Reader) <-chan servicelog.Entry {
 		for scanner.Scan() {
 			logEntry := servicelog.Entry{}
 			if err := json.Unmarshal(scanner.Bytes(), &logEntry); err != nil {
-				log.WithError(err).Warn("Unable to unmarshal log entry - skipping line")
-				continue
-			}
-			if j.KeyFilter != nil {
+				log.WithError(err).Debug("Unable to unmarshal log entry - wrapping in default entry")
+				logEntry = j.wrapInDefault(scanner.Bytes())
+			} else if j.KeyFilter != nil {
 				for key := range logEntry {
 					if j.KeyFilter.Match([]byte(key)) {
 						delete(logEntry, key)
@@ -43,3 +43,12 @@ func (j *JSON) StartScraping(reader io.Reader) <-chan servicelog.Entry {
 
 	return logEntries
 }
+
+func (j *JSON) wrapInDefault(bytes []byte) servicelog.Entry {
+	return servicelog.Entry{
+		"time":   time.Now().Format(time.RFC3339Nano),
+		"level":  "INFO",
+		"logger": "invalid-format",
+		"msg":    string(bytes),
+	}
+}
diff --git a/servicelog/scraper/json_test.go b/servicelog/scraper/json_test.go
index de85a2e8..f0a6c1a0 100644
--- a/servicelog/scraper/json_test.go
+++ b/servicelog/scraper/json_test.go
@@ -35,3 +35,17 @@ func TestIfFiltersKeysFromScrapedJSONs(t *testing.T) {
 	assert.Equal(t, "d", entry["c"])
 	assert.Len(t, entry, 1)
 }
+
+func TestIfWrapsInDefualtValuesInvalidLogEntries(t *testing.T) {
+	reader, writer := io.Pipe()
+	scraper := JSON{}
+
+	entries := scraper.StartScraping(reader)
+	go writer.Write([]byte("ERROR my invalid format\n"))
+
+	entry := <-entries
+
+	assert.Equal(t, "ERROR my invalid format", entry["msg"])
+	assert.Equal(t, "invalid-format", entry["logger"])
+	assert.Equal(t, "INFO", entry["level"])
+}