代码拉取完成,页面将自动刷新
package nlog
import (
"gitee.com/neuro-netw0rk/server-golib/server/env"
"github.com/smallnest/rpcx/log"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
// LogRateConf log rate config
type LogRateConf struct {
MaxAge int `yaml:"maxAge"`
MaxBackups uint `yaml:"maxBackups"`
MaxSize uint `yaml:"maxSize"`
}
type LogConfig struct {
Level string `yaml:"level"`
Stdout bool `yaml:"stdout"`
LogRate bool `yaml:"logRate"`
LogRateConf LogRateConf `yaml:"logRateConf"`
}
type loggerConfig struct {
ZapLevel zapcore.Level
// 以下变量仅对开发环境生效
Stdout bool
Log2File bool
Path string
// 日志切割配置
LogRate bool
MaxAge int
MaxBackups uint
MaxSize uint
}
// 全局配置 仅限Init函数进行变更
var logConfig = loggerConfig{
ZapLevel: zapcore.InfoLevel,
Stdout: false,
Log2File: true,
Path: "./log",
LogRate: false,
MaxAge: 0,
MaxBackups: 0,
}
func InitLog(conf LogConfig) *zap.SugaredLogger {
if err := RegisterNNJSONEncoder(); err != nil {
panic(err)
}
if level := env.GetLogLevel(); level != "" {
conf.Level = level
}
logConfig.ZapLevel = getLogLevel(conf.Level)
if env.IsDockerPlatform() {
// 容器环境
logConfig.Log2File = false
logConfig.Stdout = true
} else {
// 开发环境下默认输出到文件,支持自定义是否输出到终端
logConfig.Log2File = true
logConfig.Stdout = conf.Stdout
logConfig.Path = env.GetLogDirPath()
}
if conf.LogRate {
logConfig.LogRate = conf.LogRate
if conf.LogRateConf.MaxAge > 0 && conf.LogRateConf.MaxBackups > 0 {
panic("max_age and max_backups cannot be both set")
}
if conf.LogRateConf.MaxAge > 0 && conf.LogRateConf.MaxSize > 0 {
panic("max_age and max_size cannot be both set")
}
if conf.LogRateConf.MaxAge > 0 {
logConfig.MaxAge = conf.LogRateConf.MaxAge
}
if conf.LogRateConf.MaxBackups >= 0 {
logConfig.MaxBackups = conf.LogRateConf.MaxBackups
}
if conf.LogRateConf.MaxSize >= 0 {
logConfig.MaxSize = conf.LogRateConf.MaxSize
}
}
SugaredLogger = GetLogger()
log.SetLogger(&rpcxLogger{})
return SugaredLogger
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。