feat:完善项目
This commit is contained in:
63
serve/logger/init.go
Normal file
63
serve/logger/init.go
Normal file
@ -0,0 +1,63 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"io"
|
||||
"os"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
type Logger struct {
|
||||
*Option
|
||||
Logger *log.Logger
|
||||
}
|
||||
|
||||
type Option struct {
|
||||
File string `json:"file"`
|
||||
LeastDay uint `json:"least_day"`
|
||||
Level string `json:"level"`
|
||||
IsStdout bool `json:"is_stdout"`
|
||||
}
|
||||
|
||||
var logger *log.Logger
|
||||
|
||||
var loggerLevel = map[string]log.Level{
|
||||
"debug": log.DebugLevel,
|
||||
"info": log.InfoLevel,
|
||||
"warn": log.WarnLevel,
|
||||
"error": log.ErrorLevel,
|
||||
}
|
||||
|
||||
func (this *Logger) level() log.Level {
|
||||
if _, has := loggerLevel[this.Level]; !has {
|
||||
return log.ErrorLevel
|
||||
}
|
||||
return loggerLevel[this.Level]
|
||||
}
|
||||
|
||||
func (this *Logger) Load() {
|
||||
logger = this.Logger
|
||||
}
|
||||
|
||||
func (this *Logger) Init(option *Option) *Logger {
|
||||
this.Option = option
|
||||
|
||||
logger = log.New()
|
||||
logger.SetFormatter(&log.JSONFormatter{TimestampFormat: "2006-01-02 15:04:05"})
|
||||
logger.SetReportCaller(true)
|
||||
logger.AddHook(NewHook(this.File, 0, this.LeastDay))
|
||||
|
||||
if this.IsStdout {
|
||||
logger.SetOutput(io.MultiWriter(os.Stdout))
|
||||
}
|
||||
logger.SetFormatter(formatter(true))
|
||||
logger.SetLevel(this.level())
|
||||
|
||||
this.Logger = logger
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
func NewLogger() *Logger {
|
||||
return &Logger{}
|
||||
}
|
Reference in New Issue
Block a user