Skip to content

Commit

Permalink
feat(plc4go/plc4xbrowser): fix multiline key value output for logger
Browse files Browse the repository at this point in the history
  • Loading branch information
sruehl committed Aug 7, 2023
1 parent bc9a0b1 commit 76ae69a
Showing 1 changed file with 27 additions and 1 deletion.
28 changes: 27 additions & 1 deletion plc4go/tools/plc4xbrowser/ui/actions.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
package ui

import (
"bytes"
"fmt"
"github.com/apache/plc4x/plc4go/internal/ads"
"github.com/apache/plc4x/plc4go/internal/bacnetip"
Expand All @@ -32,6 +33,8 @@ import (
"github.com/rivo/tview"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
"os"
"strings"
)

func InitSubsystem() {
Expand All @@ -47,7 +50,30 @@ func InitSubsystem() {
log.Logger = log.
//// Enable below if you want to see the filenames
//With().Caller().Logger().
Output(zerolog.ConsoleWriter{Out: tview.ANSIWriter(consoleOutput)}).
Output(zerolog.NewConsoleWriter(
func(w *zerolog.ConsoleWriter) {
w.Out = os.Stderr
},
func(w *zerolog.ConsoleWriter) {
w.FormatFieldValue = func(i interface{}) string {
if aString, ok := i.(string); ok && strings.Contains(aString, "\\n") {
return fmt.Sprintf("\x1b[%dm%v\x1b[0m", 31, "see below")
}
return fmt.Sprintf("%s", i)
}
w.FormatExtra = func(m map[string]interface{}, buffer *bytes.Buffer) error {
for key, i := range m {
if aString, ok := i.(string); ok && strings.Contains(aString, "\n") {
buffer.WriteString("\n")
buffer.WriteString(fmt.Sprintf("\x1b[%dm%v\x1b[0m", 32, "field "+key))
buffer.WriteString(":\n" + aString)
}
}
return nil
}
},
),
).
Level(logLevel)

driverManager = plc4go.NewPlcDriverManager()
Expand Down

0 comments on commit 76ae69a

Please sign in to comment.