53 lines
1.0 KiB
Go
53 lines
1.0 KiB
Go
package global
|
|
|
|
import (
|
|
"fmt"
|
|
"path/filepath"
|
|
"strings"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type LogFile struct {
|
|
log.TextFormatter
|
|
}
|
|
|
|
const (
|
|
red = "38;2;255;0;0"
|
|
yellow = "38;2;255;165;0"
|
|
gray = "38;2;100;100;100"
|
|
def = "38;2;100;150;200"
|
|
green = "38;2;85;107;47"
|
|
|
|
// red = "31"
|
|
// yellow = "33"
|
|
// gray = "37"
|
|
// def = "36"
|
|
)
|
|
|
|
func (f *LogFile) Format(entry *log.Entry) ([]byte, error) {
|
|
var levelColor string
|
|
switch entry.Level {
|
|
case log.DebugLevel, log.TraceLevel:
|
|
levelColor = green
|
|
case log.WarnLevel:
|
|
levelColor = yellow
|
|
case log.ErrorLevel, log.FatalLevel, log.PanicLevel:
|
|
levelColor = red
|
|
case log.InfoLevel:
|
|
levelColor = def
|
|
default:
|
|
levelColor = def
|
|
}
|
|
|
|
funcs := strings.SplitN(entry.Caller.Function, ".", 2)
|
|
msg := fmt.Sprintf("\033[%sm[%s] [%s] [%s:%d] %s\033[0m \n",
|
|
levelColor,
|
|
entry.Time.Format("2006-01-02 15:04:05,000"),
|
|
strings.ToUpper(entry.Level.String()),
|
|
funcs[0]+"/"+filepath.Base(entry.Caller.File),
|
|
entry.Caller.Line,
|
|
entry.Message)
|
|
return []byte(msg), nil
|
|
}
|