代码拉取完成,页面将自动刷新
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))
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。