Repository navigation
AIProxy 5.3
Standardize operational logging and add a single-file request/response log
for comparing successful and failed HTTP calls.
Changes:
- Add --request-log-file ./logs/requests.jsonl. A filename enables append-only
JSONL logging of all completed HTTP requests, including successes, HTTP
errors, and authentication rejections, without other logging flags. - Capture original client headers/body, final HTTP status, request ID, and
buffered response body. Support logging.request_file in YAML and
AIPROXY_REQUEST_LOG_FILE in the environment. - Use SLF4J + Logback for structured operational/access logging on stderr,
with request-ID correlation, configurable levels, and external Logback
configuration support. Preserve normal CLI output on stdout. - Make error-only logs metadata-only by default. Use --error-log-bodies,
logging.error_bodies, or AIPROXY_ERROR_LOG_BODIES to opt into payload capture. - Record detected failures inside HTTP 200 streams without changing SSE bytes.
- Use the request-completion hook so authentication rejection does not skip
access/error/request-file logging. - Reuse bounded secret redaction and synchronized JSONL appends; document
privacy controls, collection, rotation, and retention responsibilities.
Migration and limitations:
- Error-only logs no longer include bodies unless explicitly enabled.
- Operational/access logs now go to stderr instead of stdout.
- Each captured body is capped at 256 KiB; oversized bodies are marked truncated.
- SSE response bodies are not buffered or captured. Incoming streaming requests
are logged, and detected stream failures have metadata records. - Unlimited body logging and full streamed-response capture are not implemented.
- Diagnostic file writes are synchronous. Protect files and manage retention
externally; prompts and tool output may remain sensitive despite redaction.
Validation:
- 803 Java tests and 33 offline Python tests pass.
- Fat JAR builds; version command reports AIProxy 5.3.
- Packaged CLI logging options and example configuration were checked.
- Live provider authentication/inference and load testing were not performed.
Requires Java 21 and an account with access to the selected provider/model.
Download AIProxy-5.3.jar and run:
java -jar AIProxy-5.3.jar serve --request-log-file ./logs/requests.jsonl
Full Changelog: v5.2...v5.3