All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.1.0 - 2026-09-02
- Request filtering:
REQUEST_LOG_METHODS(limit logged HTTP methods),REQUEST_LOG_INCLUDE_PATHS(regex allow-list) andREQUEST_LOG_EXCLUDE_PATHS(regex deny-list) so not everyGET /ends up in the log.
- Documentation: the array hook format in
hooks.phpnever worked for Composer namespaced classes (CI_Hooks::_run_hook()bypasses autoloaders andrequire_onces the configured file path). The README, hook docblock and sample now use the working closure registration format. - Documentation: added an explicit
.envloading section — CI3 does not parse.envfiles, soREQUEST_LOG_*must be exposed via vlucas/phpdotenv, ApacheSetEnv, or Nginxfastcgi_param. - Documentation: added note about custom Composer
vendor-dir(e.g.application/third_party/vendor) and pointing$config['composer_autoload']at the exact autoload path.
1.0.1 - 2026-09-02
- Logs could be fetched directly from the browser. Added deny rules:
sample/application/logs/.htaccessandsample/application/uploads/.htaccessthat block direct access (Apache 2.2/2.4) including a*.log/*.gzguard.- New "Security" section in the README covering moving
application/out of the web root, pointingREQUEST_LOG_DIRoutside the document root, and Apache/Nginx deny configuration.
1.0.0 - 2026-09-02
- Initial release: CI3
post_controller_constructorhookRequestLogHookthat captures request metadata — headers, raw body, file uploads, client IP, user agent, query string — and writes one JSONL line per request toapplication/logs/analysis.log. RequestLogServicewith sensitive-field redaction (configurable viaREQUEST_LOG_REDACT_FIELDS), body truncation (3 MB default), file metadata extraction (name, size, MIME, SHA-256 hash, double-extension detection), and IP/CIDR whitelist.RequestLogconfig class that readsREQUEST_LOG_*environment variables with sensible defaults.- Daily log rotation with gzip compression and retention pruning
(
REQUEST_LOG_RETENTION_DAYS, default 30). - Sample CI3 application under
sample/with a Home controller demonstrating JSON POST and multipart file upload endpoints.