diff --git a/internal/loggo/log_view.go b/internal/loggo/log_view.go index cae790d..d95e0ab 100644 --- a/internal/loggo/log_view.go +++ b/internal/loggo/log_view.go @@ -115,7 +115,7 @@ func (l *LogView) makeUIComponents() { logView: l, } selection := func(row, column int) { - if row > 0 { + if row > 0 && row-1 < len(l.finSlice) { l.jsonView = NewJsonView(l.app, false, func() { // Toggle full screen func @@ -124,10 +124,10 @@ func (l *LogView) makeUIComponents() { }, l.makeLayouts) l.jsonView.SetBorder(true).SetTitle("Log Entry") var b []byte - if _, ok := l.inSlice[row-1][config.ParseErr]; ok { - b = []byte(fmt.Sprintf(`%v`, l.inSlice[row-1][config.TextPayload])) + if _, ok := l.finSlice[row-1][config.ParseErr]; ok { + b = []byte(fmt.Sprintf(`%v`, l.finSlice[row-1][config.TextPayload])) } else { - b, _ = json.Marshal(l.inSlice[row-1]) + b, _ = json.Marshal(l.finSlice[row-1]) } l.jsonView.SetJson(b) l.makeLayoutsWithJsonView() diff --git a/internal/loggo/log_view_readers.go b/internal/loggo/log_view_readers.go index 164461a..4efe08c 100644 --- a/internal/loggo/log_view_readers.go +++ b/internal/loggo/log_view_readers.go @@ -121,6 +121,8 @@ func (l *LogView) sampleAndCount() { } func (l *LogView) filterLine(e *filter.Expression, index int) error { + l.filterLock.Lock() + defer l.filterLock.Unlock() row := l.inSlice[index] if e == nil { l.finSlice = append(l.finSlice, row)