Skip to content

Commit 97d40c8

Browse files
authored
Merge pull request #506 from warrensbox/505-split-output-and-logs
Split output and logs
2 parents 31e43bc + ef79408 commit 97d40c8

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

lib/list_versions.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,15 +208,15 @@ func validMinorVersionFormat(version string) bool {
208208
// ShowLatestVersion show install latest stable tf version
209209
func ShowLatestVersion(mirrorURL string) {
210210
tfversion, _ := getTFLatest(mirrorURL)
211-
logger.Infof("%s", tfversion)
211+
fmt.Printf("%s\n", tfversion)
212212
}
213213

214214
// ShowLatestImplicitVersion show latest - argument (version) must be provided
215215
func ShowLatestImplicitVersion(requestedVersion, mirrorURL string, preRelease bool) {
216216
if validMinorVersionFormat(requestedVersion) {
217217
tfversion, _ := getTFLatestImplicit(mirrorURL, preRelease, requestedVersion)
218218
if len(tfversion) > 0 {
219-
logger.Infof("%s", tfversion)
219+
fmt.Printf("%s\n", tfversion)
220220
} else {
221221
logger.Fatal("The provided terraform version does not exist.\n Try `tfswitch -l` to see all available versions")
222222
os.Exit(1)

lib/logging.go

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package lib
22

33
import (
4+
"os"
5+
6+
"github.com/gookit/color"
47
"github.com/gookit/slog"
58
"github.com/gookit/slog/handler"
6-
"os"
79
)
810

911
var (
@@ -17,6 +19,22 @@ var (
1719
TraceLogging = slog.Levels{slog.PanicLevel, slog.FatalLevel, slog.ErrorLevel, slog.WarnLevel, slog.InfoLevel, slog.NoticeLevel, slog.DebugLevel, slog.TraceLevel}
1820
)
1921

22+
func NewStderrConsoleWithLF(lf slog.LevelFormattable) *handler.ConsoleHandler {
23+
h := handler.NewIOWriterWithLF(os.Stderr, lf)
24+
25+
// default use text formatter
26+
f := slog.NewTextFormatter()
27+
// default enable color on console
28+
f.WithEnableColor(color.SupportColor())
29+
30+
h.SetFormatter(f)
31+
return h
32+
}
33+
34+
func NewStderrConsoleHandler(levels []slog.Level) *handler.ConsoleHandler {
35+
return NewStderrConsoleWithLF(slog.NewLvsFormatter(levels))
36+
}
37+
2038
func InitLogger(logLevel string) *slog.Logger {
2139
formatter := slog.NewTextFormatter()
2240
formatter.EnableColor = true
@@ -26,23 +44,23 @@ func InitLogger(logLevel string) *slog.Logger {
2644
var h *handler.ConsoleHandler
2745
switch logLevel {
2846
case "ERROR":
29-
h = handler.NewConsoleHandler(ErrorLogging)
47+
h = NewStderrConsoleHandler(ErrorLogging)
3048
formatter.SetTemplate(loggingTemplateDebug)
3149
break
3250
case "TRACE":
33-
h = handler.NewConsoleHandler(TraceLogging)
51+
h = NewStderrConsoleHandler(TraceLogging)
3452
formatter.SetTemplate(loggingTemplateDebug)
3553
break
3654
case "DEBUG":
37-
h = handler.NewConsoleHandler(DebugLogging)
55+
h = NewStderrConsoleHandler(DebugLogging)
3856
formatter.SetTemplate(loggingTemplateDebug)
3957
break
4058
case "NOTICE":
41-
h = handler.NewConsoleHandler(NoticeLogging)
59+
h = NewStderrConsoleHandler(NoticeLogging)
4260
formatter.SetTemplate(loggingTemplateDebug)
4361
break
4462
default:
45-
h = handler.NewConsoleHandler(NormalLogging)
63+
h = NewStderrConsoleHandler(NormalLogging)
4664
formatter.SetTemplate(loggingTemplate)
4765
}
4866

0 commit comments

Comments
 (0)