Statamic Logbook
A production-ready logging and audit trail addon for Statamic.
Statamic Logbook provides a centralized place to review:
- π System logs (Laravel / Monolog)
- π User audit logs (who changed what, and when)
All directly inside the Statamic Control Panel, with filtering, analytics, and CSV export.
β¨ Features
System Logs
- Stores application logs directly in the database
- Captures request context (URL, method, IP, user)
- Filter by date, level, and message
- CSV export
Audit Logs
- Tracks user actions across Statamic
- Records what changed β from β to
- Supports entries, taxonomies, globals, navs, and nav trees
- Field-level ignore rules
- Safe truncation for large values
- CSV export
Control Panel
- Native Statamic CP UI
- Fast filtering & pagination
- Modal previews for context & changes
- No frontend frameworks or dependencies
π¦ Installation
composer require emran-alhaddad/statamic-logbook
Publish the configuration file:
php artisan vendor:publish --tag=logbook-config
π Database Configuration (Required)
Statamic Logbook requires a database connection defined via .env.
If these variables are missing, the addon will not function.
Add the following to your .env file:
LOGBOOK_DB_CONNECTION=mysqlLOGBOOK_DB_HOST=127.0.0.1LOGBOOK_DB_PORT=3306LOGBOOK_DB_DATABASE=logbook_databaseLOGBOOK_DB_USERNAME=logbook_userLOGBOOK_DB_PASSWORD=secret
β What to do
-
Create a dedicated database (example:
logbook_database) -
Create a database user with full access to that database
-
Add the variables above to
.env -
Clear configuration cache:
php artisan config:clear
β What NOT to do
- β Do not use dots (
.) in database names β use underscores (_) - β Do not reuse credentials from unrelated systems
- β Do not point Logbook to a database you do not fully control
- β Do not commit real credentials to version control
π Install Database Tables
Once database variables are set, run:
php artisan logbook:install
This command creates all required tables.
βοΈ Configuration
All configuration options live in:
config/logbook.php
Environment variables are used only for sensitive or environment-specific values.
π§ Audit Configuration
Ignore noisy or irrelevant fields
LOGBOOK_AUDIT_IGNORE_FIELDS=updated_at,created_at,slug,uri
Limit stored value size
LOGBOOK_AUDIT_MAX_VALUE_LENGTH=2000
Large values are automatically truncated to protect performance and storage.
π Log Retention
Automatically prune old logs after a given number of days:
LOGBOOK_RETENTION_DAYS=365
Run manually:
php artisan logbook:prune
You may also schedule this command via cron.
π Permissions
Logbook registers the following permissions:
view logbookβ View system & audit logsexport logbookβ Download CSV exports
Assign permissions via the Statamic Control Panel.
β What NOT to Do
- β Do not log secrets, tokens, or passwords
- β Do not modify Logbook database tables manually
- β Do not disable retention without a cleanup strategy
- β Do not treat audit logs as editable content
Logbook is designed to be read-only from the Control Panel.
π§ͺ Compatibility
| Component | Supported |
|---|---|
| Statamic | v4, v5, v6 |
| Laravel | 10, 11 |
| PHP | 8.1+ |
π License
MIT License
See LICENSE for details.
π€ Author
Built and maintained by Emran Alhaddad GitHub: https://github.com/emran-alhaddad
π§Ύ Changelog
See CHANGELOG.md for release history.