1 Star 0 Fork 0

Darwin / uptrace-opentelemetry

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
logger.go 1.76 KB
一键复制 编辑 原始数据 按行查看 历史
baoyx 提交于 2024-01-29 21:03 . add kitext/hertz/log module
package log
import (
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
"go.uber.org/zap/zapcore"
"gopkg.in/natefinch/lumberjack.v2"
"log"
"time"
)
func NewWriteSyncer(fileName string, config *OptionConfig) zapcore.WriteSyncer {
if config.rotationDuration > 0 {
return NewRotateWriteSyncer(fileName, config)
} else {
return NewLumberjackWriteSyncer(fileName, config)
}
}
func NewLumberjackWriteSyncer(fileName string,
config *OptionConfig) zapcore.WriteSyncer {
return zapcore.AddSync(&lumberjack.Logger{
Filename: config.path + fileName + config.suffix,
MaxSize: config.maxSize,
MaxAge: config.maxAge,
MaxBackups: config.maxBackups,
Compress: config.compress,
})
}
func NewRotateWriteSyncer(fileName string,
config *OptionConfig) zapcore.WriteSyncer {
fileName = config.path + fileName
logf, err := rotatelogs.New(
fileName+"_%Y%m%d%H%M"+config.suffix,
rotatelogs.WithLinkName(fileName+config.suffix),
rotatelogs.WithMaxAge(time.Duration(config.maxAge)*24*time.Hour),
rotatelogs.WithRotationTime(config.rotationDuration*time.Minute),
)
if err != nil {
log.Printf("failed to create rotatelogs: %s", err)
}
return zapcore.AddSync(logf)
}
func coreEncoderConfig() zapcore.EncoderConfig {
return zapcore.EncoderConfig{
TimeKey: "ts",
LevelKey: "level",
NameKey: "logger",
CallerKey: "caller",
MessageKey: "msg",
StacktraceKey: "stacktrace",
LineEnding: zapcore.DefaultLineEnding,
EncodeLevel: zapcore.LowercaseLevelEncoder, // 小写编码器
EncodeTime: zapcore.EpochTimeEncoder, // ISO8601 UTC 时间格式
EncodeDuration: zapcore.SecondsDurationEncoder, //
EncodeCaller: ShortCallerEncoder, // 全路径编码器
EncodeName: zapcore.FullNameEncoder,
}
}
Go
1
https://gitee.com/byx_darwin/uptrace-opentelemetry.git
git@gitee.com:byx_darwin/uptrace-opentelemetry.git
byx_darwin
uptrace-opentelemetry
uptrace-opentelemetry
95eac5ab2876

搜索帮助