File tree Expand file tree Collapse file tree 2 files changed +27
-4
lines changed Expand file tree Collapse file tree 2 files changed +27
-4
lines changed Original file line number Diff line number Diff line change 4
4
"bufio"
5
5
"encoding/json"
6
6
"io"
7
+ "time"
7
8
8
9
log "github.com/sirupsen/logrus"
9
10
@@ -26,10 +27,9 @@ func (j *JSON) StartScraping(reader io.Reader) <-chan servicelog.Entry {
26
27
for scanner .Scan () {
27
28
logEntry := servicelog.Entry {}
28
29
if err := json .Unmarshal (scanner .Bytes (), & logEntry ); err != nil {
29
- log .WithError (err ).Warn ("Unable to unmarshal log entry - skipping line" )
30
- continue
31
- }
32
- if j .KeyFilter != nil {
30
+ log .WithError (err ).Debug ("Unable to unmarshal log entry - wrapping in default entry" )
31
+ logEntry = j .wrapInDefault (scanner .Bytes ())
32
+ } else if j .KeyFilter != nil {
33
33
for key := range logEntry {
34
34
if j .KeyFilter .Match ([]byte (key )) {
35
35
delete (logEntry , key )
@@ -43,3 +43,12 @@ func (j *JSON) StartScraping(reader io.Reader) <-chan servicelog.Entry {
43
43
44
44
return logEntries
45
45
}
46
+
47
+ func (j * JSON ) wrapInDefault (bytes []byte ) servicelog.Entry {
48
+ return servicelog.Entry {
49
+ "time" : time .Now ().Format (time .RFC3339Nano ),
50
+ "level" : "INFO" ,
51
+ "logger" : "invalid-format" ,
52
+ "msg" : string (bytes ),
53
+ }
54
+ }
Original file line number Diff line number Diff line change @@ -35,3 +35,17 @@ func TestIfFiltersKeysFromScrapedJSONs(t *testing.T) {
35
35
assert .Equal (t , "d" , entry ["c" ])
36
36
assert .Len (t , entry , 1 )
37
37
}
38
+
39
+ func TestIfWrapsInDefualtValuesInvalidLogEntries (t * testing.T ) {
40
+ reader , writer := io .Pipe ()
41
+ scraper := JSON {}
42
+
43
+ entries := scraper .StartScraping (reader )
44
+ go writer .Write ([]byte ("ERROR my invalid format\n " ))
45
+
46
+ entry := <- entries
47
+
48
+ assert .Equal (t , "ERROR my invalid format" , entry ["msg" ])
49
+ assert .Equal (t , "invalid-format" , entry ["logger" ])
50
+ assert .Equal (t , "INFO" , entry ["level" ])
51
+ }
You can’t perform that action at this time.
0 commit comments