diff --git a/src/helpers.go b/src/helpers.go new file mode 100644 index 0000000..6a86a1f --- /dev/null +++ b/src/helpers.go @@ -0,0 +1,20 @@ + +package main + +import ( + log "github.com/inconshreveable/log15" +) + +func parseLogFormatter(name string) log.Format { + + switch name { + case "logfmt" : + return log.LogfmtFormat() + case "json" : + return log.JsonFormat() + case "json-pretty" : + return log.JsonFormatEx(true, true) + default : + return log.TerminalFormat() + } +} diff --git a/src/helpers_test.go b/src/helpers_test.go new file mode 100644 index 0000000..760adb4 --- /dev/null +++ b/src/helpers_test.go @@ -0,0 +1,29 @@ +package main + +import ( + "reflect" + "testing" + + log "github.com/inconshreveable/log15" +) + +func Test_parseLogFormatter(t *testing.T) { + tests := []struct { + name string + arg string + want log.Format + }{ + { "Default", "", log.TerminalFormat() }, + { "LogFmt", "logfmt", log.LogfmtFormat() }, + { "Json", "json", log.JsonFormat() }, + { "JsonPretty", "json-pretty", log.JsonFormat() }, + { "Unknown", "unknown", log.TerminalFormat() }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := parseLogFormatter(tt.arg); reflect.ValueOf(got).Pointer() != reflect.ValueOf(tt.want).Pointer() { + t.Errorf("parseLogFormatter() = %v, want %v", got, tt.want) + } + }) + } +}