glogcenter/glc/www/controller/log_add_controller.go
2024-01-09 21:25:20 +08:00

74 lines
1.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package controller
import (
"glc/conf"
"glc/gweb"
"glc/ldb"
"glc/ldb/storage/logdata"
"github.com/gotoeasy/glang/cmn"
)
// 添加日志JSON提交方式
func JsonLogAddController(req *gweb.HttpRequest) *gweb.HttpResult {
// 开启API秘钥校验时才检查
if conf.IsEnableSecurityKey() && req.GetHeader(conf.GetHeaderSecurityKey()) != conf.GetSecurityKey() {
return gweb.Error(403, "未经授权的访问,拒绝服务")
}
md := &logdata.LogDataModel{}
err := req.BindJSON(md)
if err != nil {
cmn.Error("请求参数有误", err)
return gweb.Error500(err.Error())
}
md.Text = cmn.Trim(md.Text)
addDataModelLog(md)
if conf.IsClusterMode() {
go TransferGlc(conf.LogTransferAdd, md.ToJson()) // 转发其他GLC服务
}
return gweb.Ok()
}
// 添加日志(来自数据转发)
func JsonLogTransferAddController(req *gweb.HttpRequest) *gweb.HttpResult {
// 开启API秘钥校验时才检查
if conf.IsEnableSecurityKey() && req.GetHeader(conf.GetHeaderSecurityKey()) != conf.GetSecurityKey() {
return gweb.Error(403, "未经授权的访问,拒绝服务")
}
md := &logdata.LogDataModel{}
err := req.BindJSON(md)
if err != nil {
cmn.Error("请求参数有误", err)
return gweb.Error500(err.Error())
}
md.Text = cmn.Trim(md.Text)
addDataModelLog(md)
// addTextLog(md)
return gweb.Ok()
}
// 添加日志
func addDataModelLog(data *logdata.LogDataModel) {
engine := ldb.NewDefaultEngine()
// 按配置要求在IP字段上附加城市信息当IP含空格时认为已附加过
if conf.IsIpAddCity() {
if data.ClientIp != "" && !cmn.Contains(data.ClientIp, " ") {
data.ClientIp = cmn.GetCityIp(data.ClientIp)
}
if data.ServerIp != "" && !cmn.Contains(data.ServerIp, " ") {
data.ServerIp = cmn.GetCityIp(data.ServerIp)
}
}
engine.AddLogDataModel(data)
}