mirror of
https://github.com/x-motemen/ghq.git
synced 2026-09-10 07:26:27 -04:00
77 lines
1.5 KiB
Go
77 lines
1.5 KiB
Go
package logger
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
|
|
"github.com/motemen/go-colorine"
|
|
)
|
|
|
|
var (
|
|
NoColor = colorine.TextStyle{Foreground: colorine.None, Background: colorine.None}
|
|
VerboseColor = colorine.Verbose // white
|
|
InfoColor = colorine.Info // green
|
|
NoticeColor = colorine.Notice // blue
|
|
WarnColor = colorine.Warn // yellow
|
|
ErrorColor = colorine.Error // red
|
|
)
|
|
|
|
var (
|
|
logger = colorine.NewLogger( // default logger with color
|
|
colorine.Prefixes{
|
|
// verbose
|
|
"git": VerboseColor,
|
|
"hg": VerboseColor,
|
|
"svn": VerboseColor,
|
|
"darcs": VerboseColor,
|
|
"pijul": VerboseColor,
|
|
"bzr": VerboseColor,
|
|
"fossil": VerboseColor,
|
|
"skip": VerboseColor,
|
|
"cd": VerboseColor,
|
|
"resolved": VerboseColor,
|
|
// notice
|
|
"authorized": NoticeColor,
|
|
// warn
|
|
"open": WarnColor,
|
|
"exists": WarnColor,
|
|
"warning": WarnColor,
|
|
// error
|
|
"error": ErrorColor,
|
|
},
|
|
InfoColor, // default is info
|
|
)
|
|
|
|
loggerWithoutColor = colorine.NewLogger(
|
|
colorine.Prefixes{},
|
|
NoColor,
|
|
)
|
|
)
|
|
|
|
func init() {
|
|
selectLogger()
|
|
}
|
|
|
|
func selectLogger() {
|
|
if os.Getenv("NO_COLOR") != "" {
|
|
logger = loggerWithoutColor
|
|
}
|
|
SetOutput(os.Stderr)
|
|
}
|
|
|
|
// SetOutput sets log output writer
|
|
func SetOutput(w io.Writer) {
|
|
logger.SetOutput(w)
|
|
}
|
|
|
|
// Log outputs log
|
|
func Log(prefix, message string) {
|
|
logger.Log(prefix, message)
|
|
}
|
|
|
|
// Logf outputs log with format
|
|
func Logf(prefix, msg string, args ...any) {
|
|
Log(prefix, fmt.Sprintf(msg, args...))
|
|
}
|