diff --git a/formatter.go b/formatter.go index 82d0567..1235bcc 100644 --- a/formatter.go +++ b/formatter.go @@ -3,6 +3,8 @@ package prefixed import ( "bytes" "fmt" + "io" + "os" "regexp" "sort" "strings" @@ -11,6 +13,7 @@ import ( "github.com/sirupsen/logrus" "github.com/mgutz/ansi" + "golang.org/x/crypto/ssh/terminal" ) const defaultTimestampFormat = time.RFC3339 @@ -144,7 +147,16 @@ func (f *TextFormatter) init(entry *logrus.Entry) { f.QuoteCharacter = "\"" } if entry.Logger != nil { - f.isTerminal = logrus.IsTerminal(entry.Logger.Out) + f.isTerminal = f.checkIfTerminal(entry.Logger.Out) + } +} + +func (f *TextFormatter) checkIfTerminal(w io.Writer) bool { + switch v := w.(type) { + case *os.File: + return terminal.IsTerminal(int(v.Fd())) + default: + return false } }