- update log

master
李光春 2 years ago
parent 5604cd1e5e
commit e383a29b60

@ -23,6 +23,7 @@ import (
type GinClient struct {
gormClient *gorm.DB // 驱动
mongoCollectionClient *dorm.MongoClient // 驱动(温馨提示:需要已选择库和表)
ipService *goip.Client // ip服务
config struct {
logType string // 日志类型
tableName string // 表名
@ -48,6 +49,9 @@ func NewGinClient(attrs ...*OperationAttr) (*GinClient, error) {
if attr.tableName != "" {
c.config.tableName = attr.tableName
}
if attr.ipService != nil {
c.ipService = attr.ipService
}
}
switch c.config.logType {
@ -124,7 +128,7 @@ func (w bodyLogWriter) WriteString(s string) (int, error) {
}
// MongoMiddleware 中间件
func (c *GinClient) MongoMiddleware(ipService *goip.Client) gin.HandlerFunc {
func (c *GinClient) MongoMiddleware() gin.HandlerFunc {
return func(ginCtx *gin.Context) {
// 开始时间
@ -160,20 +164,22 @@ func (c *GinClient) MongoMiddleware(ipService *goip.Client) gin.HandlerFunc {
}
requestClientIpCountry, requestClientIpRegion, requestClientIpProvince, requestClientIpCity, requestClientIpIsp := "", "", "", "", ""
if net.ParseIP(ginCtx.ClientIP()).To4() != nil {
// 判断是不是IPV4
_, info := ipService.Ipv4(ginCtx.ClientIP())
requestClientIpCountry = info.Country
requestClientIpRegion = info.Region
requestClientIpProvince = info.Province
requestClientIpCity = info.City
requestClientIpIsp = info.ISP
} else if net.ParseIP(ginCtx.ClientIP()).To16() != nil {
// 判断是不是IPV6
info := ipService.Ipv6(ginCtx.ClientIP())
requestClientIpCountry = info.Country
requestClientIpProvince = info.Province
requestClientIpCity = info.City
if c.ipService != nil {
if net.ParseIP(ginCtx.ClientIP()).To4() != nil {
// 判断是不是IPV4
_, info := c.ipService.Ipv4(ginCtx.ClientIP())
requestClientIpCountry = info.Country
requestClientIpRegion = info.Region
requestClientIpProvince = info.Province
requestClientIpCity = info.City
requestClientIpIsp = info.ISP
} else if net.ParseIP(ginCtx.ClientIP()).To16() != nil {
// 判断是不是IPV6
info := c.ipService.Ipv6(ginCtx.ClientIP())
requestClientIpCountry = info.Country
requestClientIpProvince = info.Province
requestClientIpCity = info.City
}
}
// 记录

@ -2,6 +2,7 @@ package golog
import (
"go.dtapp.net/library/utils/dorm"
"go.dtapp.net/library/utils/goip"
"gorm.io/gorm"
)
@ -16,6 +17,7 @@ type OperationAttr struct {
mongoCollectionClient *dorm.MongoClient // 驱动
logType string // 类型
tableName string // 表名
ipService *goip.Client // ip服务
}
// WithGormClient 数据库驱动
@ -23,7 +25,7 @@ func WithGormClient(client *gorm.DB) *OperationAttr {
return &OperationAttr{gormClient: client, logType: logTypeGorm}
}
// WithMongoCollectionClient 数据库驱动(温馨提示:需要已选择库)
// WithMongoCollectionClient 数据库驱动(温馨提示:需要已选择库和表)
func WithMongoCollectionClient(client *dorm.MongoClient) *OperationAttr {
return &OperationAttr{mongoCollectionClient: client, logType: logTypeMongo}
}
@ -32,3 +34,8 @@ func WithMongoCollectionClient(client *dorm.MongoClient) *OperationAttr {
func WithTableName(tableName string) *OperationAttr {
return &OperationAttr{tableName: tableName}
}
// WithIpService ip服务
func WithIpService(ipService *goip.Client) *OperationAttr {
return &OperationAttr{ipService: ipService}
}

Loading…
Cancel
Save