parent
3d3c2109ae
commit
624394f6d4
@ -1,5 +1,5 @@
|
|||||||
package go_library
|
package go_library
|
||||||
|
|
||||||
func Version() string {
|
func Version() string {
|
||||||
return "1.0.162"
|
return "1.0.163"
|
||||||
}
|
}
|
||||||
|
@ -1,385 +0,0 @@
|
|||||||
package golog
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"github.com/dtapps/go-library"
|
|
||||||
"github.com/dtapps/go-library/utils/dorm"
|
|
||||||
"github.com/dtapps/go-library/utils/goip"
|
|
||||||
"github.com/dtapps/go-library/utils/gorequest"
|
|
||||||
"github.com/dtapps/go-library/utils/gostring"
|
|
||||||
"github.com/dtapps/go-library/utils/gotime"
|
|
||||||
"github.com/dtapps/go-library/utils/gotrace_id"
|
|
||||||
"github.com/dtapps/go-library/utils/gourl"
|
|
||||||
"go.uber.org/zap"
|
|
||||||
"go.uber.org/zap/zapcore"
|
|
||||||
"gopkg.in/natefinch/lumberjack.v2"
|
|
||||||
"runtime"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ApiZapLogFun *ApiClient 驱动
|
|
||||||
type ApiZapLogFun func() *ApiZapLog
|
|
||||||
|
|
||||||
type ApiZapLogConfig struct {
|
|
||||||
LogPath string // 日志文件路径
|
|
||||||
LogName string // 日志文件名
|
|
||||||
MaxSize int // 单位为MB,默认为512MB
|
|
||||||
MaxBackups int // 保留旧文件的最大个数
|
|
||||||
MaxAge int // 文件最多保存多少天 0=不删除
|
|
||||||
LocalTime bool // 采用本地时间
|
|
||||||
Compress bool // 是否压缩日志
|
|
||||||
ShowLine bool // 显示代码行
|
|
||||||
}
|
|
||||||
|
|
||||||
type ApiZapLog struct {
|
|
||||||
config *ApiZapLogConfig
|
|
||||||
logger *zap.Logger
|
|
||||||
zapCore zapcore.Core
|
|
||||||
systemConfig struct {
|
|
||||||
systemHostname string // 主机名
|
|
||||||
systemOs string // 系统类型
|
|
||||||
systemKernel string // 系统内核
|
|
||||||
systemInsideIp string // 内网ip
|
|
||||||
systemOutsideIp string // 外网ip
|
|
||||||
goVersion string // go版本
|
|
||||||
sdkVersion string // sdk版本
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewApiZapLog(ctx context.Context, config *ApiZapLogConfig) *ApiZapLog {
|
|
||||||
|
|
||||||
zl := &ApiZapLog{config: config}
|
|
||||||
|
|
||||||
var syncer zapcore.WriteSyncer
|
|
||||||
|
|
||||||
// 定义日志切割配置
|
|
||||||
hook := lumberjack.Logger{
|
|
||||||
Filename: zl.config.LogPath + zl.config.LogName, // ⽇志⽂件路径
|
|
||||||
MaxSize: zl.config.MaxSize, // 单位为MB,默认为512MB
|
|
||||||
MaxAge: zl.config.MaxAge, // 文件最多保存多少天
|
|
||||||
MaxBackups: zl.config.MaxBackups, // 保留旧文件的最大个数
|
|
||||||
LocalTime: zl.config.LocalTime, // 采用本地时间
|
|
||||||
Compress: zl.config.Compress, // 是否压缩日志
|
|
||||||
}
|
|
||||||
// 在文件输出日志
|
|
||||||
syncer = zapcore.AddSync(&hook)
|
|
||||||
|
|
||||||
// 自定义时间输出格式
|
|
||||||
customTimeEncoder := func(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
|
|
||||||
enc.AppendString(t.Format(gotime.DateTimeFormat))
|
|
||||||
}
|
|
||||||
|
|
||||||
// 自定义日志级别显示
|
|
||||||
customLevelEncoder := func(level zapcore.Level, enc zapcore.PrimitiveArrayEncoder) {
|
|
||||||
enc.AppendString(level.CapitalString())
|
|
||||||
}
|
|
||||||
|
|
||||||
// 定义zap配置信息
|
|
||||||
encoderConf := zapcore.EncoderConfig{
|
|
||||||
CallerKey: "caller_line", // 打印文件名和行数
|
|
||||||
LevelKey: "level_type",
|
|
||||||
MessageKey: "msg",
|
|
||||||
TimeKey: "zap_time",
|
|
||||||
NameKey: "logger",
|
|
||||||
StacktraceKey: "stacktrace",
|
|
||||||
LineEnding: zapcore.DefaultLineEnding,
|
|
||||||
EncodeTime: customTimeEncoder, // 自定义时间格式
|
|
||||||
EncodeLevel: customLevelEncoder, // 小写编码器
|
|
||||||
EncodeCaller: zapcore.ShortCallerEncoder, // 全路径编码器
|
|
||||||
EncodeDuration: zapcore.SecondsDurationEncoder,
|
|
||||||
EncodeName: zapcore.FullNameEncoder,
|
|
||||||
}
|
|
||||||
|
|
||||||
// json格式输出
|
|
||||||
zl.zapCore = zapcore.NewCore(zapcore.NewJSONEncoder(encoderConf),
|
|
||||||
syncer, zap.NewAtomicLevelAt(zapcore.InfoLevel))
|
|
||||||
|
|
||||||
zl.logger = zl.withShowLine(zap.New(zl.zapCore))
|
|
||||||
|
|
||||||
zl.setConfig(ctx)
|
|
||||||
|
|
||||||
return zl
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断是否显示代码行号
|
|
||||||
func (zl *ApiZapLog) withShowLine(logger *zap.Logger) *zap.Logger {
|
|
||||||
if zl.config.ShowLine {
|
|
||||||
logger = logger.WithOptions(zap.AddCaller())
|
|
||||||
}
|
|
||||||
return logger
|
|
||||||
}
|
|
||||||
|
|
||||||
// Middleware 中间件
|
|
||||||
func (zl *ApiZapLog) Middleware(ctx context.Context, request gorequest.Response) {
|
|
||||||
zl.logger.With(
|
|
||||||
zapcore.Field{
|
|
||||||
Key: "trace_id",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gotrace_id.GetTraceIdContext(ctx),
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_time",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gotime.SetCurrent(request.RequestTime).Format(),
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_uri",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: request.RequestUri,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_url",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gourl.UriParse(request.RequestUri).Url,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_api",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gourl.UriParse(request.RequestUri).Path,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_method",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: request.RequestMethod,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_params",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gostring.ToString(request.RequestParams), //
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_header",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gostring.ToString(request.RequestHeader), //
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_ip",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemOutsideIp,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_header",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gostring.ToString(request.ResponseHeader), //
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_status_code",
|
|
||||||
Type: zapcore.Int64Type,
|
|
||||||
Interface: request.ResponseStatusCode,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_body",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gostring.ToString(dorm.JsonDecodeNoError(request.ResponseBody)), //
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_content_length",
|
|
||||||
Type: zapcore.Int64Type,
|
|
||||||
Interface: request.ResponseContentLength,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_time",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gotime.SetCurrent(request.ResponseTime).Format(),
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "system_host_name",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemHostname,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "system_inside_ip",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemInsideIp,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "system_os",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemOs,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "system_arch",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemKernel,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "go_version",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.goVersion,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "sdk_version",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.sdkVersion,
|
|
||||||
}).
|
|
||||||
Info("Middleware")
|
|
||||||
}
|
|
||||||
|
|
||||||
// MiddlewareXml 中间件
|
|
||||||
func (zl *ApiZapLog) MiddlewareXml(ctx context.Context, request gorequest.Response) {
|
|
||||||
zl.logger.With(
|
|
||||||
zapcore.Field{
|
|
||||||
Key: "trace_id",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gotrace_id.GetTraceIdContext(ctx),
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_time",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gotime.SetCurrent(request.RequestTime).Format(),
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_uri",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: request.RequestUri,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_url",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gourl.UriParse(request.RequestUri).Url,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_api",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gourl.UriParse(request.RequestUri).Path,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_method",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: request.RequestMethod,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_params",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gostring.ToString(request.RequestParams), //
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_header",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gostring.ToString(request.RequestHeader), //
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_ip",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemOutsideIp,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_header",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gostring.ToString(request.ResponseHeader), //
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_status_code",
|
|
||||||
Type: zapcore.Int64Type,
|
|
||||||
Interface: request.ResponseStatusCode,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_body",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gostring.ToString(dorm.XmlDecodeNoError(request.ResponseBody)), //
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_content_length",
|
|
||||||
Type: zapcore.Int64Type,
|
|
||||||
Interface: request.ResponseContentLength,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_time",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gotime.SetCurrent(request.ResponseTime).Format(),
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "system_host_name",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemHostname,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "system_inside_ip",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemInsideIp,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "system_os",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemOs,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "system_arch",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemKernel,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "go_version",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.goVersion,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "sdk_version",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.sdkVersion,
|
|
||||||
}).
|
|
||||||
Info("MiddlewareXml")
|
|
||||||
}
|
|
||||||
|
|
||||||
// MiddlewareCustom 中间件
|
|
||||||
func (zl *ApiZapLog) MiddlewareCustom(ctx context.Context, api string, request gorequest.Response) {
|
|
||||||
zl.logger.With(
|
|
||||||
zapcore.Field{
|
|
||||||
Key: "trace_id",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gotrace_id.GetTraceIdContext(ctx),
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_time",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gotime.SetCurrent(request.RequestTime).Format(),
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_uri",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: request.RequestUri,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_url",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gourl.UriParse(request.RequestUri).Url,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_api",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: api,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_method",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: request.RequestMethod,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_params",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gostring.ToString(request.RequestParams), //
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_header",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gostring.ToString(request.RequestHeader), //
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "request_ip",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemOutsideIp,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_header",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gostring.ToString(request.ResponseHeader), //
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_status_code",
|
|
||||||
Type: zapcore.Int64Type,
|
|
||||||
Interface: request.ResponseStatusCode,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_body",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gostring.ToString(dorm.JsonDecodeNoError(request.ResponseBody)), //
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_content_length",
|
|
||||||
Type: zapcore.Int64Type,
|
|
||||||
Interface: request.ResponseContentLength,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "response_time",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gotime.SetCurrent(request.ResponseTime).Format(),
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "system_host_name",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemHostname,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "system_inside_ip",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemInsideIp,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "system_os",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemOs,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "system_arch",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.systemKernel,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "go_version",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.goVersion,
|
|
||||||
}, zapcore.Field{
|
|
||||||
Key: "sdk_version",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: zl.systemConfig.sdkVersion,
|
|
||||||
}).
|
|
||||||
Info("MiddlewareCustom")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (zl *ApiZapLog) setConfig(ctx context.Context) {
|
|
||||||
|
|
||||||
info := getSystem()
|
|
||||||
|
|
||||||
zl.systemConfig.systemHostname = info.SystemHostname
|
|
||||||
zl.systemConfig.systemOs = info.SystemOs
|
|
||||||
zl.systemConfig.systemKernel = info.SystemKernel
|
|
||||||
|
|
||||||
zl.systemConfig.systemInsideIp = goip.GetInsideIp(ctx)
|
|
||||||
|
|
||||||
zl.systemConfig.sdkVersion = go_library.Version()
|
|
||||||
zl.systemConfig.goVersion = runtime.Version()
|
|
||||||
}
|
|
@ -1,137 +0,0 @@
|
|||||||
package golog
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"github.com/dtapps/go-library/utils/gotime"
|
|
||||||
"github.com/dtapps/go-library/utils/gotrace_id"
|
|
||||||
"go.uber.org/zap"
|
|
||||||
"go.uber.org/zap/zapcore"
|
|
||||||
"gopkg.in/natefinch/lumberjack.v2"
|
|
||||||
"os"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ZapLogFun *ApiClient 驱动
|
|
||||||
type ZapLogFun func() *ZapLog
|
|
||||||
|
|
||||||
type ZapLogConfig struct {
|
|
||||||
LogPath string // 日志文件路径
|
|
||||||
LogName string // 日志文件名
|
|
||||||
MaxSize int // 单位为MB,默认为512MB
|
|
||||||
MaxBackups int // 保留旧文件的最大个数
|
|
||||||
MaxAge int // 文件最多保存多少天 0=不删除
|
|
||||||
LocalTime bool // 采用本地时间
|
|
||||||
Compress bool // 是否压缩日志
|
|
||||||
JsonFormat bool // 是否输出为json格式
|
|
||||||
ShowLine bool // 显示代码行
|
|
||||||
LogInConsole bool // 是否同时输出到控制台
|
|
||||||
}
|
|
||||||
|
|
||||||
type ZapLog struct {
|
|
||||||
config *ZapLogConfig
|
|
||||||
logger *zap.Logger
|
|
||||||
zapCore zapcore.Core
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewZapLog(config *ZapLogConfig) *ZapLog {
|
|
||||||
|
|
||||||
zl := &ZapLog{config: config}
|
|
||||||
|
|
||||||
var syncer zapcore.WriteSyncer
|
|
||||||
|
|
||||||
if zl.config.LogPath != "" && zl.config.LogName != "" {
|
|
||||||
// 定义日志切割配置
|
|
||||||
hook := lumberjack.Logger{
|
|
||||||
Filename: zl.config.LogPath + zl.config.LogName, // ⽇志⽂件路径
|
|
||||||
MaxSize: zl.config.MaxSize, // 单位为MB,默认为512MB
|
|
||||||
MaxAge: zl.config.MaxAge, // 文件最多保存多少天
|
|
||||||
MaxBackups: zl.config.MaxBackups, // 保留旧文件的最大个数
|
|
||||||
LocalTime: zl.config.LocalTime, // 采用本地时间
|
|
||||||
Compress: zl.config.Compress, // 是否压缩日志
|
|
||||||
}
|
|
||||||
if zl.config.LogInConsole {
|
|
||||||
// 在控制台和文件输出日志
|
|
||||||
syncer = zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout), zapcore.AddSync(&hook))
|
|
||||||
} else {
|
|
||||||
// 在文件输出日志
|
|
||||||
syncer = zapcore.AddSync(&hook)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 在控制台输出日志
|
|
||||||
syncer = zapcore.NewMultiWriteSyncer()
|
|
||||||
}
|
|
||||||
|
|
||||||
// 自定义时间输出格式
|
|
||||||
customTimeEncoder := func(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
|
|
||||||
enc.AppendString(t.Format(gotime.DateTimeFormat))
|
|
||||||
}
|
|
||||||
|
|
||||||
// 自定义日志级别显示
|
|
||||||
customLevelEncoder := func(level zapcore.Level, enc zapcore.PrimitiveArrayEncoder) {
|
|
||||||
enc.AppendString(level.CapitalString())
|
|
||||||
}
|
|
||||||
|
|
||||||
// 定义zap配置信息
|
|
||||||
encoderConf := zapcore.EncoderConfig{
|
|
||||||
CallerKey: "caller_line", // 打印文件名和行数
|
|
||||||
LevelKey: "level_name",
|
|
||||||
MessageKey: "msg",
|
|
||||||
TimeKey: "time",
|
|
||||||
NameKey: "logger",
|
|
||||||
StacktraceKey: "stacktrace",
|
|
||||||
LineEnding: zapcore.DefaultLineEnding,
|
|
||||||
EncodeTime: customTimeEncoder, // 自定义时间格式
|
|
||||||
EncodeLevel: customLevelEncoder, // 小写编码器
|
|
||||||
EncodeCaller: zapcore.ShortCallerEncoder, // 全路径编码器
|
|
||||||
EncodeDuration: zapcore.SecondsDurationEncoder,
|
|
||||||
EncodeName: zapcore.FullNameEncoder,
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断是否json格式输出
|
|
||||||
if zl.config.JsonFormat {
|
|
||||||
zl.zapCore = zapcore.NewCore(zapcore.NewJSONEncoder(encoderConf),
|
|
||||||
syncer, zap.NewAtomicLevelAt(zapcore.InfoLevel))
|
|
||||||
} else {
|
|
||||||
zl.zapCore = zapcore.NewCore(zapcore.NewConsoleEncoder(encoderConf),
|
|
||||||
syncer, zap.NewAtomicLevelAt(zapcore.InfoLevel))
|
|
||||||
}
|
|
||||||
|
|
||||||
zl.logger = zl.withShowLine(zap.New(zl.zapCore))
|
|
||||||
|
|
||||||
return zl
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断是否显示代码行号
|
|
||||||
func (zl *ZapLog) withShowLine(logger *zap.Logger) *zap.Logger {
|
|
||||||
if zl.config.ShowLine {
|
|
||||||
logger = logger.WithOptions(zap.AddCaller())
|
|
||||||
}
|
|
||||||
return logger
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithLogger 跟踪编号
|
|
||||||
func (zl *ZapLog) WithLogger() *zap.Logger {
|
|
||||||
return zl.logger
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithTraceId 跟踪编号
|
|
||||||
func (zl *ZapLog) WithTraceId(ctx context.Context) *zap.Logger {
|
|
||||||
logger := zl.logger
|
|
||||||
logger = logger.With(zapcore.Field{
|
|
||||||
Key: "trace_id",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: gotrace_id.GetTraceIdContext(ctx),
|
|
||||||
})
|
|
||||||
return logger
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithTraceIdStr 跟踪编号
|
|
||||||
func (zl *ZapLog) WithTraceIdStr(traceId string) *zap.Logger {
|
|
||||||
logger := zl.logger
|
|
||||||
logger = logger.With(zapcore.Field{
|
|
||||||
Key: "trace_id",
|
|
||||||
Type: zapcore.StringType,
|
|
||||||
String: traceId,
|
|
||||||
})
|
|
||||||
return logger
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
package rocron
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/robfig/cron/v3"
|
|
||||||
)
|
|
||||||
|
|
||||||
// https://github.com/robfig/cron/
|
|
||||||
|
|
||||||
var (
|
|
||||||
Cron *cron.Cron
|
|
||||||
)
|
|
Loading…
Reference in new issue