3 Star 0 Fork 0

neuro-netw0rk/server-golib

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
init.go 2.11 KB
一键复制 编辑 原始数据 按行查看 历史
LeoWang 提交于 2024-12-16 16:45 +08:00 . 整合golib和serverlib
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
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/neuro-netw0rk/server-golib.git
git@gitee.com:neuro-netw0rk/server-golib.git
neuro-netw0rk
server-golib
server-golib
v0.0.5-beta2

搜索帮助