// +build !appengine,!js,windows package logrus import ( "io" "os" "syscall" sequences "github.com/konsorten/go-windows-terminal-sequences" ) func initTerminal(w io.Writer) { switch v := w.(type) { case *os.File: sequences.EnableVirtualTerminalProcessing(syscall.Handle(v.Fd()), true) } } func checkIfTerminal(w io.Writer) bool { var ret bool switch v := w.(type) { case *os.File: var mode uint32 err := syscall.GetConsoleMode(syscall.Handle(v.Fd()), &mode) ret = (err == nil) default: ret = false } if ret { initTerminal(w) } return ret }