1 // Package term provides tools for logging to a terminal. 2 package term 3 4 import ( 5 "io" 6 7 "github.com/go-kit/log" 8 ) 9 10 // NewLogger returns a Logger that takes advantage of terminal features if 11 // possible. Log events are formatted by the Logger returned by newLogger. If 12 // w is a terminal each log event is colored according to the color function. 13 func NewLogger(w io.Writer, newLogger func(io.Writer) log.Logger, color func(keyvals ...interface{}) FgBgColor) log.Logger { 14 if !IsTerminal(w) { 15 return newLogger(w) 16 } 17 return NewColorLogger(NewColorWriter(w), newLogger, color) 18 } 19 20 type fder interface { 21 Fd() uintptr 22 } 23