ToValidUTF8 处理访问日志中的非UTF-8字节
(accessLog *pb.HTTPAccessLog)
| 142 | |
| 143 | // ToValidUTF8 处理访问日志中的非UTF-8字节 |
| 144 | func (this *HTTPAccessLogQueue) ToValidUTF8(accessLog *pb.HTTPAccessLog) { |
| 145 | accessLog.RemoteAddr = utils.ToValidUTF8string(accessLog.RemoteAddr) |
| 146 | accessLog.RemoteUser = utils.ToValidUTF8string(accessLog.RemoteUser) |
| 147 | accessLog.RequestURI = utils.ToValidUTF8string(accessLog.RequestURI) |
| 148 | accessLog.RequestPath = utils.ToValidUTF8string(accessLog.RequestPath) |
| 149 | accessLog.RequestFilename = utils.ToValidUTF8string(accessLog.RequestFilename) |
| 150 | accessLog.RequestBody = bytes.ToValidUTF8(accessLog.RequestBody, []byte{}) |
| 151 | accessLog.Host = utils.ToValidUTF8string(accessLog.Host) |
| 152 | accessLog.Hostname = utils.ToValidUTF8string(accessLog.Hostname) |
| 153 | |
| 154 | for k, v := range accessLog.SentHeader { |
| 155 | if !utf8.ValidString(k) { |
| 156 | delete(accessLog.SentHeader, k) |
| 157 | continue |
| 158 | } |
| 159 | |
| 160 | for index, s := range v.Values { |
| 161 | v.Values[index] = utils.ToValidUTF8string(s) |
| 162 | } |
| 163 | } |
| 164 | |
| 165 | accessLog.Referer = utils.ToValidUTF8string(accessLog.Referer) |
| 166 | accessLog.UserAgent = utils.ToValidUTF8string(accessLog.UserAgent) |
| 167 | accessLog.Request = utils.ToValidUTF8string(accessLog.Request) |
| 168 | accessLog.ContentType = utils.ToValidUTF8string(accessLog.ContentType) |
| 169 | |
| 170 | for k, c := range accessLog.Cookie { |
| 171 | if !utf8.ValidString(k) { |
| 172 | delete(accessLog.Cookie, k) |
| 173 | continue |
| 174 | } |
| 175 | accessLog.Cookie[k] = utils.ToValidUTF8string(c) |
| 176 | } |
| 177 | |
| 178 | accessLog.Args = utils.ToValidUTF8string(accessLog.Args) |
| 179 | accessLog.QueryString = utils.ToValidUTF8string(accessLog.QueryString) |
| 180 | |
| 181 | for k, v := range accessLog.Header { |
| 182 | if !utf8.ValidString(k) { |
| 183 | delete(accessLog.Header, k) |
| 184 | continue |
| 185 | } |
| 186 | for index, s := range v.Values { |
| 187 | v.Values[index] = utils.ToValidUTF8string(s) |
| 188 | } |
| 189 | } |
| 190 | |
| 191 | for k, v := range accessLog.Errors { |
| 192 | accessLog.Errors[k] = utils.ToValidUTF8string(v) |
| 193 | } |
| 194 | } |