12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package router
- import (
- "net/http"
- "github.com/imgproxy/imgproxy/v3/ierrors"
- log "github.com/sirupsen/logrus"
- )
- func LogRequest(reqID string, r *http.Request) {
- path := r.RequestURI
- log.WithFields(log.Fields{
- "request_id": reqID,
- "method": r.Method,
- }).Infof("Started %s", path)
- }
- func LogResponse(reqID string, r *http.Request, status int, err *ierrors.Error, additional ...log.Fields) {
- var level log.Level
- switch {
- case status >= 500:
- level = log.ErrorLevel
- case status >= 400:
- level = log.WarnLevel
- default:
- level = log.InfoLevel
- }
- fields := log.Fields{
- "request_id": reqID,
- "method": r.Method,
- "status": status,
- }
- if err != nil {
- fields["error"] = err
- if stack := err.FormatStack(); len(stack) > 0 {
- fields["stack"] = stack
- }
- }
- for _, f := range additional {
- for k, v := range f {
- fields[k] = v
- }
- }
- log.WithFields(fields).Logf(
- level,
- "Completed in %s %s", ctxTime(r.Context()), r.RequestURI,
- )
- }
|