Error when accesslog and error pages
This commit is contained in:
parent
a2a0c80acb
commit
67847c3117
3 changed files with 14 additions and 9 deletions
|
@ -101,19 +101,25 @@ func openAccessLogFile(filePath string) (*os.File, error) {
|
||||||
return file, nil
|
return file, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetLogDataTable gets the request context object that contains logging data. This accretes
|
// GetLogDataTable gets the request context object that contains logging data.
|
||||||
// data as the request passes through the middleware chain.
|
// This creates data as the request passes through the middleware chain.
|
||||||
func GetLogDataTable(req *http.Request) *LogData {
|
func GetLogDataTable(req *http.Request) *LogData {
|
||||||
return req.Context().Value(DataTableKey).(*LogData)
|
if ld, ok := req.Context().Value(DataTableKey).(*LogData); ok {
|
||||||
|
return ld
|
||||||
|
}
|
||||||
|
log.Errorf("%s is nil", DataTableKey)
|
||||||
|
return &LogData{Core: make(CoreLogData)}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *LogHandler) ServeHTTP(rw http.ResponseWriter, req *http.Request, next http.HandlerFunc) {
|
func (l *LogHandler) ServeHTTP(rw http.ResponseWriter, req *http.Request, next http.HandlerFunc) {
|
||||||
now := time.Now().UTC()
|
now := time.Now().UTC()
|
||||||
core := make(CoreLogData)
|
|
||||||
|
core := CoreLogData{
|
||||||
|
StartUTC: now,
|
||||||
|
StartLocal: now.Local(),
|
||||||
|
}
|
||||||
|
|
||||||
logDataTable := &LogData{Core: core, Request: req.Header}
|
logDataTable := &LogData{Core: core, Request: req.Header}
|
||||||
core[StartUTC] = now
|
|
||||||
core[StartLocal] = now.Local()
|
|
||||||
|
|
||||||
reqWithDataTable := req.WithContext(context.WithValue(req.Context(), DataTableKey, logDataTable))
|
reqWithDataTable := req.WithContext(context.WithValue(req.Context(), DataTableKey, logDataTable))
|
||||||
|
|
||||||
|
|
|
@ -43,8 +43,6 @@ func (sb *SaveBackend) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
|
||||||
table.Core[OriginContentSize] = crw.Size()
|
table.Core[OriginContentSize] = crw.Size()
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// SaveFrontend sends the frontend name to the logger. These are sometimes used with a corresponding
|
// SaveFrontend sends the frontend name to the logger. These are sometimes used with a corresponding
|
||||||
// SaveBackend handler, but not always. For example, redirected requests don't reach a backend.
|
// SaveBackend handler, but not always. For example, redirected requests don't reach a backend.
|
||||||
type SaveFrontend struct {
|
type SaveFrontend struct {
|
||||||
|
|
|
@ -99,7 +99,8 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, req *http.Request, next http.
|
||||||
utils.CopyHeaders(pageReq.Header, req.Header)
|
utils.CopyHeaders(pageReq.Header, req.Header)
|
||||||
utils.CopyHeaders(w.Header(), recorder.Header())
|
utils.CopyHeaders(w.Header(), recorder.Header())
|
||||||
w.WriteHeader(recorder.GetCode())
|
w.WriteHeader(recorder.GetCode())
|
||||||
h.backendHandler.ServeHTTP(w, pageReq)
|
|
||||||
|
h.backendHandler.ServeHTTP(w, pageReq.WithContext(req.Context()))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue