123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- package log
- import (
- "fmt"
- "git.nspix.com/golang/kos/util/env"
- "strconv"
- "time"
- )
- const (
- FG_BLACK int = 30
- FG_RED = 31
- FG_GREEN = 32
- FG_YELLOW = 33
- FG_BLUE = 34
- FG_PURPLE = 35
- FG_CYAN = 36
- FG_GREY = 37
- )
- var (
- levelColor = map[int]int{
- TraceLevel: FG_GREY,
- DebugLevel: FG_BLUE,
- InfoLevel: FG_GREEN,
- WarnLevel: FG_PURPLE,
- ErrorLevel: FG_RED,
- FatalLevel: FG_RED,
- PanicLevel: FG_RED,
- }
- )
- type Console struct {
- Level int
- DisableColor bool
- DisableTime bool
- prefix string
- }
- func (log *Console) SetLevel(lv int) {
- log.Level = lv
- }
- func (log *Console) Prefix(s string) {
- log.prefix = s
- }
- func (log *Console) Print(i ...interface{}) {
- log.write(TraceLevel, fmt.Sprint(i...))
- }
- func (log *Console) Printf(format string, args ...interface{}) {
- log.write(TraceLevel, fmt.Sprintf(format, args...))
- }
- func (log *Console) Debug(i ...interface{}) {
- log.write(DebugLevel, fmt.Sprint(i...))
- }
- func (log *Console) Debugf(format string, args ...interface{}) {
- log.write(DebugLevel, fmt.Sprintf(format, args...))
- }
- func (log *Console) Info(i ...interface{}) {
- log.write(InfoLevel, fmt.Sprint(i...))
- }
- func (log *Console) Infof(format string, args ...interface{}) {
- log.write(InfoLevel, fmt.Sprintf(format, args...))
- }
- func (log *Console) Warn(i ...interface{}) {
- log.write(WarnLevel, fmt.Sprint(i...))
- }
- func (log *Console) Warnf(format string, args ...interface{}) {
- log.write(WarnLevel, fmt.Sprintf(format, args...))
- }
- func (log *Console) Error(i ...interface{}) {
- log.write(ErrorLevel, fmt.Sprint(i...))
- }
- func (log *Console) Errorf(format string, args ...interface{}) {
- log.write(ErrorLevel, fmt.Sprintf(format, args...))
- }
- func (log *Console) Fatal(i ...interface{}) {
- log.write(FatalLevel, fmt.Sprint(i...))
- }
- func (log *Console) Fatalf(format string, args ...interface{}) {
- log.write(FatalLevel, fmt.Sprintf(format, args...))
- }
- func (log *Console) Panic(i ...interface{}) {
- log.write(PanicLevel, fmt.Sprint(i...))
- }
- func (log *Console) Panicf(format string, args ...interface{}) {
- log.write(PanicLevel, fmt.Sprintf(format, args...))
- }
- func (log *Console) write(level int, s string) {
- var ls string
- if log.Level > level {
- return
- }
- if log.DisableColor {
- ls = getLevelText(level)
- } else {
- ls = fmt.Sprintf("\033[0m\033[%dm[%s]\033[0m", levelColor[level], getLevelText(level))
- }
- if log.prefix != "" {
- ls += " [" + log.prefix + "]"
- }
- if log.DisableTime {
- fmt.Println(ls + " " + s)
- } else {
- fmt.Println(time.Now().Format("2006-01-02 15:04:05") + " " + ls + " " + s)
- }
- }
- func NewConsoleLogger() *Console {
- lg := &Console{}
- lg.DisableColor, _ = strconv.ParseBool(env.Get("VOX_DISABLE_LOG_COLOR", "false"))
- lg.DisableTime, _ = strconv.ParseBool(env.Get("VOX_DISABLE_LOG_DATETIME", "false"))
- return lg
- }
|