mirror of
https://github.com/gotoeasy/glogcenter.git
synced 2025-09-15 12:58:34 +08:00
74 lines
1.8 KiB
Go
74 lines
1.8 KiB
Go
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)
|
||
}
|