Codebase list golang-github-go-kit-kit / bc5ea82e-1167-4fb4-8e22-e87e0694f480/main log / term / term.go
bc5ea82e-1167-4fb4-8e22-e87e0694f480/main

Tree @bc5ea82e-1167-4fb4-8e22-e87e0694f480/main (Download .tar.gz)

term.go @bc5ea82e-1167-4fb4-8e22-e87e0694f480/mainraw · history · blame

// Package term provides tools for logging to a terminal.
package term

import (
	"io"

	"github.com/go-kit/kit/log"
)

// NewLogger returns a Logger that takes advantage of terminal features if
// possible. Log events are formatted by the Logger returned by newLogger. If
// w is a terminal each log event is colored according to the color function.
func NewLogger(w io.Writer, newLogger func(io.Writer) log.Logger, color func(keyvals ...interface{}) FgBgColor) log.Logger {
	if !IsTerminal(w) {
		return newLogger(w)
	}
	return NewColorLogger(NewColorWriter(w), newLogger, color)
}

type fder interface {
	Fd() uintptr
}