Debug logging
September 1, 2026 ยท View on GitHub
In some cases it may be convenient to log all HTTP requests. This can be enabled by setting
the CONSOLE_DEBUG_LOGLEVEL environment variable to one of the following values:
0(default) uses no logging.1log single line per request for server-side errors (status-code 5xx).2log single line per request for client-side and server-side errors (status-code 4xx/5xx).3log single line per request for all requests.4log details per request for server-side errors (status-code 5xx).5log details per request for client-side and server-side errors (status-code 4xx/5xx).6log details per request for all requests.
A single line has the following information:
- Remote endpoint (IP + port) of the request. Note that reverse proxies may hide the actual remote endpoint of the client's browser.
- HTTP method and URL
- Status code of the response (websocket connections are hijacked, so no response is shown)
- Duration of the request
The detailed record (levels 4โ6) adds every request and response header, one per line.
What the log may contain
Detailed logging is meant for troubleshooting and still records operational data: bucket names, object keys and prefixes in URLs, user agents, client and proxy addresses, request identifiers, and header names. Treat the output as sensitive.
Credential-bearing values are redacted at every level, with the same rules audit logging uses
(pkg/logger/redact):
AuthorizationandProxy-Authorizationkeep only a recognized scheme (Bearer [REDACTED]); Console's own decrypted session bearer, which carries STS credentials, is therefore never written.Cookiekeeps cookie names and redacts every value;Set-Cookiekeeps the cookie name and the standard attributes (Path,Domain,Expires,Max-Age,Secure,HttpOnly,SameSite,Partitioned,Priority).X-Amz-Security-Token,X-Amz-Credential,X-Amz-Signature, the SSE-C customer key headers and their MD5 headers,X-Api-Key,X-Auth-Token,X-TokenandX-Csrf-Tokenare replaced entirely.- Query parameters
sts,sts_a,sts_s(session bootstrap),code,token,access_token,id_token,refresh_token,session_token,X-Amz-Security-Token,X-Amz-Signature,X-Amz-Credential,AWSAccessKeyIdandSignatureare redacted; parameter names are percent-decoded before matching, and a query that cannot be parsed is replaced as a whole. - The encoded segment of
/api/v1/download-shared-object/<segment>, which is a complete presigned URL, is redacted in debug lines and in the auditapi.pathfield. - A value that does not parse (an
Authorizationvalue without a recognized scheme, a malformed cookie pair, an unknownSet-Cookieattribute) is replaced entirely rather than partially kept.
The session identifier attached to audit entries and error logs (sessionID) is a stable, non-reversible
fingerprint of the session (s- followed by 32 hex characters), not the STS session token. With
CONSOLE_LOGGER_ANONYMOUS_ENABLE=on that fingerprint and remoteHost are hashed once more before they are emitted.