Skip to content

access_log

access_log writes structured request and response logs. It can include headers, bodies, duration, response size, and per-path logging rules.

yaml
server:
  http:
    middlewares:
      access:
        access_log:
          level: info
          message: access log
          skip_sse: true
          path:
            enabled:
              - url: /**
                methods: ["*"]
            disabled:
              - url: /health
          log_details:
            request_body: true
            request_body_size: 512
            response_body: true
            response_body_size: 512
            headers: true
            sanitize_headers:
              - Authorization
              - Cookie
              - Set-Cookie

Fields

FieldDefaultDescription
levelinfoOne of debug, info, warn, or error.
messageaccess logLog message.
skip_ssetrueSkip buffering and logging for Accept: text/event-stream.
path.enabledPaths to log. If no enabled rule matches, the request is not logged.
path.disabledPaths to skip before checking enabled rules.
log_detailsGlobal detail settings used by enabled rules unless overridden.

Path checks use doublestar patterns. Method rules accept *, explicit methods, +METHOD to allow, and -METHOD to block.

request_body_size and response_body_size are byte limits. A value of 0 means no limit. Default sensitive headers are Authorization, Cookie, Set-Cookie, and X-Forwarded-For.