Quellcode durchsuchen

Fixed disable color

Signed-off-by: Vishal Rana <vr@labstack.com>
Vishal Rana vor 10 Jahren
Ursprung
Commit
25c3ce2d2a
4 geänderte Dateien mit 17 neuen und 23 gelöschten Zeilen
  1. 3 3
      color/color.go
  2. 4 3
      color/color_test.go
  3. 7 14
      log/log.go
  4. 3 3
      log/log_test.go

+ 3 - 3
color/color.go

@@ -99,7 +99,7 @@ var (
 
 func outer(n string) inner {
 	return func(msg interface{}, styles []string, c *Color) string {
-		// TODO: May be drop fmt to boost performance
+		// TODO: Drop fmt to boost performance?
 		if c.disabled {
 			return fmt.Sprintf("%v", msg)
 		}
@@ -238,11 +238,11 @@ func (c *Color) Strikeout(msg interface{}, styles ...string) string {
 }
 
 func Disable() {
-	global.disabled = true
+	global.Disable()
 }
 
 func Enable() {
-	global.disabled = false
+	global.Enable()
 }
 
 func Black(msg interface{}, styles ...string) string {

+ 4 - 3
color/color_test.go

@@ -2,8 +2,9 @@ package color
 
 import (
 	"fmt"
-	"github.com/stretchr/testify/assert"
 	"testing"
+
+	"github.com/stretchr/testify/assert"
 )
 
 func TestText(t *testing.T) {
@@ -53,8 +54,8 @@ func TestMixMatch(t *testing.T) {
 }
 
 func TestEnableDisable(t *testing.T) {
-	global.Disable()
+	Disable()
 	assert.Equal(t, "red", Red("red"))
-	global.Enable()
+	Enable()
 	assert.NotEqual(t, "green", Green("green"))
 }

+ 7 - 14
log/log.go

@@ -15,7 +15,6 @@ type (
 	Logger struct {
 		level  Level
 		out    io.Writer
-		err    io.Writer
 		prefix string
 		mu     sync.Mutex
 	}
@@ -42,9 +41,8 @@ func New(prefix string) (l *Logger) {
 	l = &Logger{
 		level:  INFO,
 		prefix: prefix,
-		out:    colorable.NewColorableStdout(),
-		err:    colorable.NewColorableStderr(),
 	}
+	l.SetOutput(colorable.NewColorableStdout())
 	return
 }
 
@@ -62,15 +60,10 @@ func (l *Logger) Level() Level {
 
 func (l *Logger) SetOutput(w io.Writer) {
 	l.out = w
-	l.err = w
-
-	switch w := w.(type) {
-	case *os.File:
-		if isatty.IsTerminal(w.Fd()) {
-			color.Enable()
-		}
-	default:
-		color.Disable()
+	color.Disable()
+
+	if w, ok := w.(*os.File); ok && isatty.IsTerminal(w.Fd()) {
+		color.Enable()
 	}
 
 	// NOTE: Reintialize levels to reflect color enable/disable call.
@@ -108,11 +101,11 @@ func (l *Logger) Warn(msg interface{}, args ...interface{}) {
 }
 
 func (l *Logger) Error(msg interface{}, args ...interface{}) {
-	l.log(ERROR, l.err, msg, args...)
+	l.log(ERROR, l.out, msg, args...)
 }
 
 func (l *Logger) Fatal(msg interface{}, args ...interface{}) {
-	l.log(FATAL, l.err, msg, args...)
+	l.log(FATAL, l.out, msg, args...)
 	os.Exit(1)
 }
 

+ 3 - 3
log/log_test.go

@@ -13,14 +13,14 @@ func TestLog(t *testing.T) {
 	l.SetOutput(b)
 	test(l, TRACE, t)
 	assert.Contains(t, b.String(), "trace")
-	assert.Contains(t, b.String(), "fatal")
+	// assert.Contains(t, b.String(), "fatal")
 
 	b.Reset()
 	SetOutput(b)
 	test(global, NOTICE, t)
 	assert.NotContains(t, b.String(), "info")
 	assert.Contains(t, b.String(), "notice")
-	assert.Contains(t, b.String(), "fatal")
+	// assert.Contains(t, b.String(), "fatal")
 }
 
 func test(l *Logger, v Level, t *testing.T) {
@@ -33,5 +33,5 @@ func test(l *Logger, v Level, t *testing.T) {
 	l.Notice("notice")
 	l.Warn("warn")
 	l.Error("error")
-	l.Fatal("fatal")
+	// l.Fatal("fatal")
 }