集群全局服务配置中增加多个访问日志相关选项

This commit is contained in:
GoEdgeLab
2022-10-26 17:51:16 +08:00
parent d985a53fa6
commit a02046a9a8

View File

@@ -51,33 +51,46 @@ func (this *HTTPRequest) log() {
addr = addr[:index] addr = addr[:index]
} }
var serverGlobalConfig = this.nodeConfig.GlobalServerConfig
// 请求Cookie // 请求Cookie
var cookies = map[string]string{} var cookies = map[string]string{}
if ref == nil || ref.ContainsField(serverconfigs.HTTPAccessLogFieldCookie) { var enableCookies = false
for _, cookie := range this.RawReq.Cookies() { if serverGlobalConfig == nil || serverGlobalConfig.HTTPAccessLog.EnableCookies {
cookies[cookie.Name] = cookie.Value enableCookies = true
if ref == nil || ref.ContainsField(serverconfigs.HTTPAccessLogFieldCookie) {
for _, cookie := range this.RawReq.Cookies() {
cookies[cookie.Name] = cookie.Value
}
} }
} }
// 请求Header // 请求Header
var pbReqHeader = map[string]*pb.Strings{} var pbReqHeader = map[string]*pb.Strings{}
if ref == nil || ref.ContainsField(serverconfigs.HTTPAccessLogFieldHeader) { if serverGlobalConfig == nil || serverGlobalConfig.HTTPAccessLog.EnableRequestHeaders {
// 是否只记录通用Header if ref == nil || ref.ContainsField(serverconfigs.HTTPAccessLogFieldHeader) {
var commonHeadersOnly = this.nodeConfig != nil && this.nodeConfig.GlobalServerConfig != nil && this.nodeConfig.GlobalServerConfig.HTTPAccessLog.CommonRequestHeadersOnly // 是否只记录通用Header
var commonHeadersOnly = serverGlobalConfig != nil && serverGlobalConfig.HTTPAccessLog.CommonRequestHeadersOnly
for k, v := range this.RawReq.Header { for k, v := range this.RawReq.Header {
if commonHeadersOnly && !serverconfigs.IsCommonRequestHeader(k) { if commonHeadersOnly && !serverconfigs.IsCommonRequestHeader(k) {
continue continue
}
if !enableCookies && k == "Cookie" {
continue
}
pbReqHeader[k] = &pb.Strings{Values: v}
} }
pbReqHeader[k] = &pb.Strings{Values: v}
} }
} }
// 响应Header // 响应Header
var pbResHeader = map[string]*pb.Strings{} var pbResHeader = map[string]*pb.Strings{}
if ref == nil || ref.ContainsField(serverconfigs.HTTPAccessLogFieldSentHeader) { if serverGlobalConfig == nil || serverGlobalConfig.HTTPAccessLog.EnableResponseHeaders {
for k, v := range this.writer.Header() { if ref == nil || ref.ContainsField(serverconfigs.HTTPAccessLogFieldSentHeader) {
pbResHeader[k] = &pb.Strings{Values: v} for k, v := range this.writer.Header() {
pbResHeader[k] = &pb.Strings{Values: v}
}
} }
} }