inconshreveable / log15

Structured, composable logging for Go
https://godoc.org/github.com/inconshreveable/log15
Other
1.1k stars 145 forks source link

Normal log15.Root() not colorized on Cygwin #143

Open alankm opened 6 years ago

alankm commented 6 years ago

This is caused by isatty.IsTerminal() not reporting true under Cygwin. Cygwin can handle colorized output just fine though. This seems to be a very easy fix: adjust the following code in root.go (lines 17-28) from

func init() {
    if isatty.IsTerminal(os.Stdout.Fd()) {
        StdoutHandler = StreamHandler(colorable.NewColorableStdout(), TerminalFormat())
    }

    if isatty.IsTerminal(os.Stderr.Fd()) {
        StderrHandler = StreamHandler(colorable.NewColorableStderr(), TerminalFormat())
    }

    root = &logger{[]interface{}{}, new(swapHandler)}
    root.SetHandler(StdoutHandler)
}

to

func init() {
    if isatty.IsTerminal(os.Stdout.Fd()) || isatty.IsCygwinTerminal(os.Stdout.Fd()){
        StdoutHandler = StreamHandler(colorable.NewColorableStdout(), TerminalFormat())
    }

    if isatty.IsTerminal(os.Stderr.Fd()) || isatty.IsCygwinTerminal(os.Stderr.Fd()) {
        StderrHandler = StreamHandler(colorable.NewColorableStderr(), TerminalFormat())
    }

    root = &logger{[]interface{}{}, new(swapHandler)}
    root.SetHandler(StdoutHandler)
}