updated http logging to include the query string part
This commit is contained in:
14
client.go
14
client.go
@ -1700,9 +1700,9 @@ func (c *Client) WrapHttpHandler(handler ClientHttpHandler) http.Handler {
|
|||||||
|
|
||||||
if status_code > 0 {
|
if status_code > 0 {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s %d %.9f - %s", req.RemoteAddr, req.Method, req.URL.String(), status_code, time_taken.Seconds(), err.Error())
|
c.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s %d %.9f - %s", req.RemoteAddr, req.Method, get_raw_url_path(req), status_code, time_taken.Seconds(), err.Error())
|
||||||
} else {
|
} else {
|
||||||
c.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s %d %.9f", req.RemoteAddr, req.Method, req.URL.String(), status_code, time_taken.Seconds())
|
c.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s %d %.9f", req.RemoteAddr, req.Method, get_raw_url_path(req), status_code, time_taken.Seconds())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -1714,7 +1714,7 @@ func (c *Client) SafeWrapWebsocketHandler(handler websocket.Handler) http.Handle
|
|||||||
!strings.Contains(strings.ToLower(req.Header.Get("Connection")), "upgrade") {
|
!strings.Contains(strings.ToLower(req.Header.Get("Connection")), "upgrade") {
|
||||||
var status_code int
|
var status_code int
|
||||||
status_code = WriteEmptyRespHeader(w, http.StatusBadRequest)
|
status_code = WriteEmptyRespHeader(w, http.StatusBadRequest)
|
||||||
c.log.Write("", LOG_INFO, "[%s] %s %s %d[non-websocket]", req.RemoteAddr, req.Method, req.URL.String(), status_code)
|
c.log.Write("", LOG_INFO, "[%s] %s %s %d[non-websocket]", req.RemoteAddr, req.Method, get_raw_url_path(req), status_code)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
handler.ServeHTTP(w, req)
|
handler.ServeHTTP(w, req)
|
||||||
@ -1728,9 +1728,11 @@ func (c *Client) WrapWebsocketHandler(handler ClientWebsocketHandler) websocket.
|
|||||||
var start_time time.Time
|
var start_time time.Time
|
||||||
var time_taken time.Duration
|
var time_taken time.Duration
|
||||||
var req *http.Request
|
var req *http.Request
|
||||||
|
var raw_url_path string
|
||||||
|
|
||||||
req = ws.Request()
|
req = ws.Request()
|
||||||
c.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s [ws]", req.RemoteAddr, req.Method, req.URL.String())
|
raw_url_path = get_raw_url_path(req)
|
||||||
|
c.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s [ws]", req.RemoteAddr, req.Method, raw_url_path)
|
||||||
|
|
||||||
start_time = time.Now()
|
start_time = time.Now()
|
||||||
status_code, err = handler.ServeWebsocket(ws)
|
status_code, err = handler.ServeWebsocket(ws)
|
||||||
@ -1738,9 +1740,9 @@ func (c *Client) WrapWebsocketHandler(handler ClientWebsocketHandler) websocket.
|
|||||||
|
|
||||||
if status_code > 0 {
|
if status_code > 0 {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s [ws] %d %.9f - %s", req.RemoteAddr, req.Method, req.URL.String(), status_code, time_taken.Seconds(), err.Error())
|
c.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s [ws] %d %.9f - %s", req.RemoteAddr, req.Method, raw_url_path, status_code, time_taken.Seconds(), err.Error())
|
||||||
} else {
|
} else {
|
||||||
c.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s [ws] %d %.9f", req.RemoteAddr, req.Method, req.URL.String(), status_code, time_taken.Seconds())
|
c.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s [ws] %d %.9f", req.RemoteAddr, req.Method, raw_url_path, status_code, time_taken.Seconds())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
12
hodu.go
12
hodu.go
@ -225,7 +225,7 @@ func (option RouteOption) String() string {
|
|||||||
func dump_call_frame_and_exit(log Logger, req *http.Request, err interface{}) {
|
func dump_call_frame_and_exit(log Logger, req *http.Request, err interface{}) {
|
||||||
var buf []byte
|
var buf []byte
|
||||||
buf = make([]byte, 65536); buf = buf[:min(65536, runtime.Stack(buf, false))]
|
buf = make([]byte, 65536); buf = buf[:min(65536, runtime.Stack(buf, false))]
|
||||||
log.Write("", LOG_ERROR, "[%s] %s %s - %v\n%s", req.RemoteAddr, req.Method, req.URL.String(), err, string(buf))
|
log.Write("", LOG_ERROR, "[%s] %s %s - %v\n%s", req.RemoteAddr, req.Method, get_raw_url_path(req), err, string(buf))
|
||||||
log.Close()
|
log.Close()
|
||||||
os.Exit(99) // fatal error. treat panic() as a fatal runtime error
|
os.Exit(99) // fatal error. treat panic() as a fatal runtime error
|
||||||
}
|
}
|
||||||
@ -466,3 +466,13 @@ func (auth *HttpAuthConfig) Authenticate(req *http.Request) (int, string) {
|
|||||||
|
|
||||||
return http.StatusOK, ""
|
return http.StatusOK, ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------------------------
|
||||||
|
|
||||||
|
func get_raw_url_path(req *http.Request) string {
|
||||||
|
var path string
|
||||||
|
path = req.URL.Path
|
||||||
|
if req.URL.RawQuery != "" { path += "?" + req.URL.RawQuery }
|
||||||
|
return path
|
||||||
|
}
|
||||||
|
@ -375,7 +375,7 @@ func (pxy *server_pxy_http_main) ServeHTTP(w http.ResponseWriter, req *http.Requ
|
|||||||
}
|
}
|
||||||
proxy_url = pxy.req_to_proxy_url(req, pi)
|
proxy_url = pxy.req_to_proxy_url(req, pi)
|
||||||
|
|
||||||
s.log.Write(pxy.Id, LOG_INFO, "[%s] %s %s -> %+v", req.RemoteAddr, req.Method, req.URL.String(), proxy_url)
|
s.log.Write(pxy.Id, LOG_INFO, "[%s] %s %s -> %+v", req.RemoteAddr, req.Method, get_raw_url_path(req), proxy_url)
|
||||||
|
|
||||||
proxy_req, err = http.NewRequestWithContext(s.Ctx, req.Method, proxy_url.String(), req.Body)
|
proxy_req, err = http.NewRequestWithContext(s.Ctx, req.Method, proxy_url.String(), req.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -401,7 +401,7 @@ func (pxy *server_pxy_http_main) ServeHTTP(w http.ResponseWriter, req *http.Requ
|
|||||||
} else {
|
} else {
|
||||||
status_code = resp.StatusCode
|
status_code = resp.StatusCode
|
||||||
if upgrade_required && resp.StatusCode == http.StatusSwitchingProtocols {
|
if upgrade_required && resp.StatusCode == http.StatusSwitchingProtocols {
|
||||||
s.log.Write(pxy.Id, LOG_INFO, "[%s] %s %s %d", req.RemoteAddr, req.Method, req.URL.String(), status_code)
|
s.log.Write(pxy.Id, LOG_INFO, "[%s] %s %s %d", req.RemoteAddr, req.Method, get_raw_url_path(req), status_code)
|
||||||
err = pxy.serve_upgraded(w, req, resp)
|
err = pxy.serve_upgraded(w, req, resp)
|
||||||
if err != nil { goto oops }
|
if err != nil { goto oops }
|
||||||
return 0, nil// print the log mesage before calling serve_upgraded() and exit here
|
return 0, nil// print the log mesage before calling serve_upgraded() and exit here
|
||||||
@ -426,7 +426,7 @@ func (pxy *server_pxy_http_main) ServeHTTP(w http.ResponseWriter, req *http.Requ
|
|||||||
|
|
||||||
_, err = io.Copy(w, resp_body)
|
_, err = io.Copy(w, resp_body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.log.Write(pxy.Id, LOG_WARN, "[%s] %s %s %s", req.RemoteAddr, req.Method, req.URL.String(), err.Error())
|
s.log.Write(pxy.Id, LOG_WARN, "[%s] %s %s %s", req.RemoteAddr, req.Method, get_raw_url_path(req), err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: handle trailers
|
// TODO: handle trailers
|
||||||
|
14
server.go
14
server.go
@ -1417,9 +1417,9 @@ func (s *Server) WrapHttpHandler(handler ServerHttpHandler) http.Handler {
|
|||||||
|
|
||||||
if status_code > 0 {
|
if status_code > 0 {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s %d %.9f - %s", req.RemoteAddr, req.Method, req.URL.String(), status_code, time_taken.Seconds(), err.Error())
|
s.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s %d %.9f - %s", req.RemoteAddr, req.Method, get_raw_url_path(req), status_code, time_taken.Seconds(), err.Error())
|
||||||
} else {
|
} else {
|
||||||
s.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s %d %.9f", req.RemoteAddr, req.Method, req.URL.String(), status_code, time_taken.Seconds())
|
s.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s %d %.9f", req.RemoteAddr, req.Method, get_raw_url_path(req), status_code, time_taken.Seconds())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -1431,7 +1431,7 @@ func (s *Server) SafeWrapWebsocketHandler(handler websocket.Handler) http.Handle
|
|||||||
!strings.Contains(strings.ToLower(req.Header.Get("Connection")), "upgrade") {
|
!strings.Contains(strings.ToLower(req.Header.Get("Connection")), "upgrade") {
|
||||||
var status_code int
|
var status_code int
|
||||||
status_code = WriteEmptyRespHeader(w, http.StatusBadRequest)
|
status_code = WriteEmptyRespHeader(w, http.StatusBadRequest)
|
||||||
s.log.Write("", LOG_INFO, "[%s] %s %s %d[non-websocket]", req.RemoteAddr, req.Method, req.URL.String(), status_code)
|
s.log.Write("", LOG_INFO, "[%s] %s %s %d[non-websocket]", req.RemoteAddr, req.Method, get_raw_url_path(req), status_code)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
handler.ServeHTTP(w, req)
|
handler.ServeHTTP(w, req)
|
||||||
@ -1445,9 +1445,11 @@ func (s *Server) WrapWebsocketHandler(handler ServerWebsocketHandler) websocket.
|
|||||||
var start_time time.Time
|
var start_time time.Time
|
||||||
var time_taken time.Duration
|
var time_taken time.Duration
|
||||||
var req *http.Request
|
var req *http.Request
|
||||||
|
var raw_url_path string
|
||||||
|
|
||||||
req = ws.Request()
|
req = ws.Request()
|
||||||
s.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s [ws]", req.RemoteAddr, req.Method, req.URL.String())
|
raw_url_path = get_raw_url_path(req)
|
||||||
|
s.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s [ws]", req.RemoteAddr, req.Method, raw_url_path)
|
||||||
|
|
||||||
start_time = time.Now()
|
start_time = time.Now()
|
||||||
status_code, err = handler.ServeWebsocket(ws)
|
status_code, err = handler.ServeWebsocket(ws)
|
||||||
@ -1455,9 +1457,9 @@ func (s *Server) WrapWebsocketHandler(handler ServerWebsocketHandler) websocket.
|
|||||||
|
|
||||||
if status_code > 0 {
|
if status_code > 0 {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s [ws] %d %.9f - %s", req.RemoteAddr, req.Method, req.URL.String(), status_code, time_taken.Seconds(), err.Error())
|
s.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s [ws] %d %.9f - %s", req.RemoteAddr, req.Method, raw_url_path, status_code, time_taken.Seconds(), err.Error())
|
||||||
} else {
|
} else {
|
||||||
s.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s [ws] %d %.9f", req.RemoteAddr, req.Method, req.URL.String(), status_code, time_taken.Seconds())
|
s.log.Write(handler.Identity(), LOG_INFO, "[%s] %s %s [ws] %d %.9f", req.RemoteAddr, req.Method, raw_url_path, status_code, time_taken.Seconds())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user