Browse Source

v1.1.4

# Conflicts:
#	logger.go
Javier Provecho Fernandez 9 years ago
parent
commit
e2212d40c6
2 changed files with 17 additions and 5 deletions
  1. 3 3
      .travis.yml
  2. 14 2
      logger.go

+ 3 - 3
.travis.yml

@@ -2,9 +2,9 @@ language: go
 sudo: false
 go:
   - 1.4
-  - 1.5
-  - 1.6
-  - 1.7
+  - 1.5.4
+  - 1.6.4
+  - 1.7.4
   - tip
 
 script:

+ 14 - 2
logger.go

@@ -7,7 +7,10 @@ package gin
 import (
 	"fmt"
 	"io"
+	"os"
 	"time"
+
+	"github.com/mattn/go-isatty"
 )
 
 var (
@@ -44,6 +47,12 @@ func Logger() HandlerFunc {
 // LoggerWithWriter instance a Logger middleware with the specified writter buffer.
 // Example: os.Stdout, a file opened in write mode, a socket...
 func LoggerWithWriter(out io.Writer, notlogged ...string) HandlerFunc {
+	isTerm := true
+
+	if w, ok := out.(*os.File); !ok || !isatty.IsTerminal(w.Fd()) {
+		isTerm = false
+	}
+
 	var skip map[string]struct{}
 
 	if length := len(notlogged); length > 0 {
@@ -71,8 +80,11 @@ func LoggerWithWriter(out io.Writer, notlogged ...string) HandlerFunc {
 			clientIP := c.ClientIP()
 			method := c.Request.Method
 			statusCode := c.Writer.Status()
-			statusColor := colorForStatus(statusCode)
-			methodColor := colorForMethod(method)
+			var statusColor, methodColor string
+			if isTerm {
+				statusColor = colorForStatus(statusCode)
+				methodColor = colorForMethod(method)
+			}
 			comment := c.Errors.ByType(ErrorTypePrivate).String()
 
 			fmt.Fprintf(out, "[GIN] %v |%s %3d %s| %13v | %s |%s  %s %-7s %s\n%s",