Skip to content

Commit

Permalink
Merge pull request gin-gonic#744 from aviddiviner/logger-fix
Browse files Browse the repository at this point in the history
Logger: skip ANSI color commands if output is not a tty
  • Loading branch information
appleboy authored Nov 30, 2016
2 parents 9177f01 + 70ada0c commit c3bfd69
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ package gin
import (
"fmt"
"io"
"os"
"time"

"golang.org/x/crypto/ssh/terminal"
)

var (
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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",
Expand Down

0 comments on commit c3bfd69

Please sign in to comment.