Преглед на файлове

Revert "Revert "Merge pull request #744 from aviddiviner/logger-fix""

This reverts commit 19f271c86ba04f2d56d342c20a3f1b16fe785c23.
Javier Provecho Fernandez преди 9 години
родител
ревизия
fabe3df785
променени са 1 файла, в които са добавени 13 реда и са изтрити 2 реда
  1. 13 2
      logger.go

+ 13 - 2
logger.go

@@ -7,7 +7,10 @@ package gin
 import (
 	"fmt"
 	"io"
+	"os"
 	"time"
+
+	"golang.org/x/crypto/ssh/terminal"
 )
 
 var (
@@ -44,6 +47,11 @@ 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 outFile, ok := out.(*os.File); ok {
+		isTerm = terminal.IsTerminal(int(outFile.Fd()))
+	}
+
 	var skip map[string]struct{}
 
 	if length := len(notlogged); length > 0 {
@@ -71,8 +79,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",