inconshreveable / log15

Structured, composable logging for Go

Home Page:https://godoc.org/github.com/inconshreveable/log15

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Normal log15.Root() not colorized on Cygwin

alankm opened this issue · comments

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)
}