升级数据库日志
This commit is contained in:
parent
77de4c7fd9
commit
0bc05b3816
6
go.mod
6
go.mod
@ -5,8 +5,10 @@ go 1.21
|
|||||||
toolchain go1.22.5
|
toolchain go1.22.5
|
||||||
|
|
||||||
require (
|
require (
|
||||||
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20240723085016-ee0510753552
|
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20240724140052-d0784926366a
|
||||||
git.zhangdeman.cn/zhangdeman/gin v0.0.0-20240723135300-86cecc4eb707
|
git.zhangdeman.cn/zhangdeman/gin v0.0.0-20240723135300-86cecc4eb707
|
||||||
|
git.zhangdeman.cn/zhangdeman/network v0.0.0-20230925112156-f0eb86dd2442
|
||||||
|
git.zhangdeman.cn/zhangdeman/serialize v0.0.0-20240618035451-8d48a6bd39dd
|
||||||
git.zhangdeman.cn/zhangdeman/websocket v0.0.0-20240723075210-85feada512b2
|
git.zhangdeman.cn/zhangdeman/websocket v0.0.0-20240723075210-85feada512b2
|
||||||
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible
|
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
@ -17,9 +19,7 @@ require (
|
|||||||
require (
|
require (
|
||||||
git.zhangdeman.cn/zhangdeman/easylock v0.0.0-20230731062340-983985c12eda // indirect
|
git.zhangdeman.cn/zhangdeman/easylock v0.0.0-20230731062340-983985c12eda // indirect
|
||||||
git.zhangdeman.cn/zhangdeman/easymap v0.0.0-20240311030808-e2a2e6a3c211 // indirect
|
git.zhangdeman.cn/zhangdeman/easymap v0.0.0-20240311030808-e2a2e6a3c211 // indirect
|
||||||
git.zhangdeman.cn/zhangdeman/network v0.0.0-20230925112156-f0eb86dd2442 // indirect
|
|
||||||
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20240122104027-4928421213c0 // indirect
|
git.zhangdeman.cn/zhangdeman/op_type v0.0.0-20240122104027-4928421213c0 // indirect
|
||||||
git.zhangdeman.cn/zhangdeman/serialize v0.0.0-20240618035451-8d48a6bd39dd // indirect
|
|
||||||
git.zhangdeman.cn/zhangdeman/util v0.0.0-20240618042405-6ee2c904644e // indirect
|
git.zhangdeman.cn/zhangdeman/util v0.0.0-20240618042405-6ee2c904644e // indirect
|
||||||
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20240627031706-9ff1c213bb50 // indirect
|
git.zhangdeman.cn/zhangdeman/wrapper v0.0.0-20240627031706-9ff1c213bb50 // indirect
|
||||||
github.com/BurntSushi/toml v1.4.0 // indirect
|
github.com/BurntSushi/toml v1.4.0 // indirect
|
||||||
|
2
go.sum
2
go.sum
@ -2,6 +2,8 @@ git.zhangdeman.cn/zhangdeman/consts v0.0.0-20240722080005-ca68a3ff8bc7 h1:8wJlcu
|
|||||||
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20240722080005-ca68a3ff8bc7/go.mod h1:IXXaZkb7vGzGnGM5RRWrASAuwrVSNxuoe0DmeXx5g6k=
|
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20240722080005-ca68a3ff8bc7/go.mod h1:IXXaZkb7vGzGnGM5RRWrASAuwrVSNxuoe0DmeXx5g6k=
|
||||||
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20240723085016-ee0510753552 h1:SgxcaLXEXn3ImMOik9y3xDz82KwK/+9IhqV1kZbqIwQ=
|
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20240723085016-ee0510753552 h1:SgxcaLXEXn3ImMOik9y3xDz82KwK/+9IhqV1kZbqIwQ=
|
||||||
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20240723085016-ee0510753552/go.mod h1:IXXaZkb7vGzGnGM5RRWrASAuwrVSNxuoe0DmeXx5g6k=
|
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20240723085016-ee0510753552/go.mod h1:IXXaZkb7vGzGnGM5RRWrASAuwrVSNxuoe0DmeXx5g6k=
|
||||||
|
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20240724140052-d0784926366a h1:xeDsU7YV/6ae+/imMpAYjxFpmbCvoCmIHTN40UInreU=
|
||||||
|
git.zhangdeman.cn/zhangdeman/consts v0.0.0-20240724140052-d0784926366a/go.mod h1:IXXaZkb7vGzGnGM5RRWrASAuwrVSNxuoe0DmeXx5g6k=
|
||||||
git.zhangdeman.cn/zhangdeman/easylock v0.0.0-20230731062340-983985c12eda h1:bMD6r9gjRy7cO+T4zRQVYAesgIblBdTnhzT1vN5wjvI=
|
git.zhangdeman.cn/zhangdeman/easylock v0.0.0-20230731062340-983985c12eda h1:bMD6r9gjRy7cO+T4zRQVYAesgIblBdTnhzT1vN5wjvI=
|
||||||
git.zhangdeman.cn/zhangdeman/easylock v0.0.0-20230731062340-983985c12eda/go.mod h1:dT0rmHcJ9Z9IqWeMIt7YzR88nKkNV2V3dfG0j9Q6lK0=
|
git.zhangdeman.cn/zhangdeman/easylock v0.0.0-20230731062340-983985c12eda/go.mod h1:dT0rmHcJ9Z9IqWeMIt7YzR88nKkNV2V3dfG0j9Q6lK0=
|
||||||
git.zhangdeman.cn/zhangdeman/easymap v0.0.0-20240311030808-e2a2e6a3c211 h1:I/wOsRpCSRkU9vo1u703slQsmK0wnNeZzsWQOGtIAG0=
|
git.zhangdeman.cn/zhangdeman/easymap v0.0.0-20240311030808-e2a2e6a3c211 h1:I/wOsRpCSRkU9vo1u703slQsmK0wnNeZzsWQOGtIAG0=
|
||||||
|
10
util.go
10
util.go
@ -10,10 +10,8 @@ package logger
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
ginRequest "git.zhangdeman.cn/zhangdeman/gin/request"
|
|
||||||
"git.zhangdeman.cn/zhangdeman/network/util"
|
"git.zhangdeman.cn/zhangdeman/network/util"
|
||||||
"git.zhangdeman.cn/zhangdeman/serialize"
|
"git.zhangdeman.cn/zhangdeman/serialize"
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -22,13 +20,13 @@ import (
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 16:21 2024/7/23
|
// Date : 16:21 2024/7/23
|
||||||
func NewLogData(ctx *gin.Context, logType string, code string, logData map[string]any) *LogData {
|
func NewLogData(logType string, code string, logData map[string]any) *LogData {
|
||||||
if logData == nil {
|
if logData == nil {
|
||||||
logData = make(map[string]any)
|
logData = make(map[string]any)
|
||||||
}
|
}
|
||||||
hostname, _ := os.Hostname()
|
hostname, _ := os.Hostname()
|
||||||
commonLogData := &LogData{
|
commonLogData := &LogData{
|
||||||
Uri: ginRequest.WrapperHandle.GetUri(ctx, ""),
|
Uri: "",
|
||||||
TraceID: "",
|
TraceID: "",
|
||||||
UserID: "",
|
UserID: "",
|
||||||
UserRoleID: "",
|
UserRoleID: "",
|
||||||
@ -36,7 +34,7 @@ func NewLogData(ctx *gin.Context, logType string, code string, logData map[strin
|
|||||||
LogType: logType,
|
LogType: logType,
|
||||||
CodeVersion: "",
|
CodeVersion: "",
|
||||||
ServiceVersion: "",
|
ServiceVersion: "",
|
||||||
ClientIp: ginRequest.WrapperHandle.GetClientIp(ctx, "0.0.0.0"),
|
ClientIp: "",
|
||||||
ServerIp: util.IP.GetHostIP(),
|
ServerIp: util.IP.GetHostIP(),
|
||||||
Hostname: hostname,
|
Hostname: hostname,
|
||||||
Code: code,
|
Code: code,
|
||||||
@ -51,7 +49,7 @@ func NewLogData(ctx *gin.Context, logType string, code string, logData map[strin
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 17:33 2024/7/23
|
// Date : 17:33 2024/7/23
|
||||||
func ZapLogDataList(ctx *gin.Context, logData *LogData) []zap.Field {
|
func ZapLogDataList(logData *LogData) []zap.Field {
|
||||||
logDataList := make([]zap.Field, 0)
|
logDataList := make([]zap.Field, 0)
|
||||||
if logData == nil {
|
if logData == nil {
|
||||||
return logDataList
|
return logDataList
|
||||||
|
@ -102,7 +102,9 @@ func (g *Gorm) LogMode(level logger.LogLevel) logger.Interface {
|
|||||||
//
|
//
|
||||||
// Date : 10:18 下午 2021/3/1
|
// Date : 10:18 下午 2021/3/1
|
||||||
func (g *Gorm) Info(ctx context.Context, s string, i ...any) {
|
func (g *Gorm) Info(ctx context.Context, s string, i ...any) {
|
||||||
g.write(ctx, s, consts.LogLevelInfo, []zap.Field{zap.Any("log_data", i)})
|
g.write(ctx, s, consts.LogLevelInfo, map[string]any{
|
||||||
|
"log_data": i,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Warn ...
|
// Warn ...
|
||||||
@ -111,7 +113,9 @@ func (g *Gorm) Info(ctx context.Context, s string, i ...any) {
|
|||||||
//
|
//
|
||||||
// Date : 10:16 下午 2021/3/1
|
// Date : 10:16 下午 2021/3/1
|
||||||
func (g *Gorm) Warn(ctx context.Context, s string, i ...any) {
|
func (g *Gorm) Warn(ctx context.Context, s string, i ...any) {
|
||||||
g.write(ctx, s, consts.LogLevelWarn, []zap.Field{zap.Any("log_data", i)})
|
g.write(ctx, s, consts.LogLevelWarn, map[string]any{
|
||||||
|
"log_data": i,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Error 日志
|
// Error 日志
|
||||||
@ -120,7 +124,9 @@ func (g *Gorm) Warn(ctx context.Context, s string, i ...any) {
|
|||||||
//
|
//
|
||||||
// Date : 10:18 下午 2021/3/1
|
// Date : 10:18 下午 2021/3/1
|
||||||
func (g *Gorm) Error(ctx context.Context, s string, i ...any) {
|
func (g *Gorm) Error(ctx context.Context, s string, i ...any) {
|
||||||
g.write(ctx, s, consts.LogLevelError, []zap.Field{zap.Any("log_data", i)})
|
g.write(ctx, s, consts.LogLevelError, map[string]any{
|
||||||
|
"log_data": i,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Trace Trace 记录
|
// Trace Trace 记录
|
||||||
@ -137,17 +143,16 @@ func (g *Gorm) Trace(ctx context.Context, begin time.Time, fc func() (string, in
|
|||||||
sql, affectRows = fc()
|
sql, affectRows = fc()
|
||||||
}
|
}
|
||||||
|
|
||||||
dataList := []zap.Field{
|
g.write(ctx, "SQL执行记录", consts.LogLevelInfo, map[string]any{
|
||||||
zap.String("db_flag", g.flag),
|
"db_flag": g.flag,
|
||||||
zap.String("db_node", g.node),
|
"db_node": g.node,
|
||||||
zap.Int64("begin_time", start),
|
"begin_time": start,
|
||||||
zap.Int64("finish_time", end),
|
"finish_time": end,
|
||||||
zap.Any("used_time", (end-start)/1e6),
|
"used_time": (end - start) / 1e6,
|
||||||
zap.String("sql", sql),
|
"sql": sql,
|
||||||
zap.Int64("affect_rows", affectRows),
|
"affect_rows": affectRows,
|
||||||
zap.Error(err),
|
"err": err.Error(),
|
||||||
}
|
})
|
||||||
g.write(ctx, "SQL执行记录", consts.LogLevelInfo, dataList)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// write ...
|
// write ...
|
||||||
@ -155,7 +160,7 @@ func (g *Gorm) Trace(ctx context.Context, begin time.Time, fc func() (string, in
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 4:11 PM 2021/12/24
|
// Date : 4:11 PM 2021/12/24
|
||||||
func (g *Gorm) write(ctx context.Context, message string, level string, dataList []zap.Field) {
|
func (g *Gorm) write(ctx context.Context, message string, level string, data map[string]any) {
|
||||||
if len(message) == 0 {
|
if len(message) == 0 {
|
||||||
message = "SQL执行记录"
|
message = "SQL执行记录"
|
||||||
}
|
}
|
||||||
@ -163,8 +168,8 @@ func (g *Gorm) write(ctx context.Context, message string, level string, dataList
|
|||||||
// 未设置日志实例
|
// 未设置日志实例
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if nil == dataList {
|
if nil == data {
|
||||||
dataList = make([]zap.Field, 0)
|
data = make(map[string]any)
|
||||||
}
|
}
|
||||||
if nil == g.outCtx {
|
if nil == g.outCtx {
|
||||||
g.outCtx = context.Background()
|
g.outCtx = context.Background()
|
||||||
@ -177,9 +182,12 @@ func (g *Gorm) write(ctx context.Context, message string, level string, dataList
|
|||||||
if nil == val {
|
if nil == val {
|
||||||
val = ""
|
val = ""
|
||||||
}
|
}
|
||||||
dataList = append(dataList, zap.Any(extraField, val))
|
if val, exist := data[extraField]; !exist || nil == val {
|
||||||
|
data[extraField] = val
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dataList := logger2.ZapLogDataList(logger2.NewLogData(consts.LogTypeDatabase, "", data))
|
||||||
switch strings.ToUpper(level) {
|
switch strings.ToUpper(level) {
|
||||||
case consts.LogLevelDebug:
|
case consts.LogLevelDebug:
|
||||||
g.instance.Debug(message, dataList...)
|
g.instance.Debug(message, dataList...)
|
||||||
|
Loading…
Reference in New Issue
Block a user