1 Star 1 Fork 2

kristas/booting-go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
log_factory.go 1.34 KB
一键复制 编辑 原始数据 按行查看 历史
kristas 提交于 2021-09-17 16:31 . feat: rebuild log
package log
import (
_ "embed"
"errors"
"fmt"
"gitee.com/kristas/booting-go/framework/core/configure"
"gitee.com/kristas/booting-go/framework/core/ioc/bean_factory"
"gitee.com/kristas/booting-go/framework/core/ioc/bean_repository"
)
var logger Logger
//go:embed layout.yml
var layout []byte
type LoggerFactory struct {
Conf *Configure
LoggerFactory ILoggerFactory
}
func Init() error {
var f = &LoggerFactory{}
err := bean_factory.CreateBean(f)
if err != nil {
return err
}
if f.Conf.Style == nil {
configure.AddConfigReader(func(environment string) []byte {
return layout
})
}
err = configure.BindConfiguration(f.Conf)
if err != nil {
return err
}
adapter := f.LoggerFactory.GetLogger(f.Conf.Instance)
level, err := parseLevel(f.Conf.Level)
if err != nil {
return err
}
adapter.SetLevel(level)
logger, err = New(adapter, f.Conf, DefaultDepth)
if err != nil {
return err
}
bean_repository.RegisterSingletonBean(logger)
return nil
}
func GetLog() Logger {
return logger
}
func parseLevel(level string) (Level, error) {
levelMapping := map[string]Level{
"panic": Panic,
"fatal": Fatal,
"error": Error,
"warn": Warn,
"info": Info,
"debug": Debug,
"trace": Trace,
}
if lvl, ok := levelMapping[level]; ok {
return lvl, nil
}
return 0, errors.New(fmt.Sprintf("log level %s not support", level))
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/kristas/booting-go.git
git@gitee.com:kristas/booting-go.git
kristas
booting-go
booting-go
v1.3.7

搜索帮助

344bd9b3 5694891 D2dac590 5694891