Simple History 5.21.0 is now available. This release introduces two powerful debugging features: the new “Surrounding Events” viewer lets you see what happened before and after any event, and Log Forwarding (beta) enables you to send your activity logs to local log files and external destinations for backup, compliance, and security purposes.
Whether you’re debugging a tricky issue or need to meet compliance requirements, these new features give you more control over your WordPress activity logs than ever before.
Debug Like a Pro: Show Surrounding Events
Ever found yourself staring at an event in your log wondering “what led to this?” Now you can find out instantly.
The new “Show surrounding events” feature displays events that occurred immediately before and after any specific event. It’s like having a time machine for your audit log — you can see the full context of what was happening on your site at any moment.


This is incredibly useful for:
- Debugging issues — See what actions preceded a problem
- Security investigations — Understand the sequence of events during a suspected breach
- User activity analysis — Get context around specific user actions
Access this feature through the event actions menu (the three dots next to any event). It’s available to administrators in the GUI, and also accessible via the REST API and WP-CLI for automation and scripting.
Log Forwarding: Send Events to External Destinations
This is the feature many of you have been asking for. Log Forwarding lets you automatically send copies of your activity log events to external destinations — perfect for backup, compliance, and integration with your existing security infrastructure.



As previewed a few days ago, this release introduces three forwarding channels:
File Channel (Free)
The File Channel is included in the free version and writes events to local log files on your server. Key features include:
- Automatic rotation — Create new files daily, weekly, or monthly
- Configurable retention — Specify how many log files to keep
- Human-readable format — Easy to read with any text editor
- Independent from database — File logs aren’t affected by the “Clear log” button or retention settings
This is great for keeping a separate backup of your logs or for integrating with server-level log management tools.
Syslog and External Database Channels (Premium)
Simple History Premium adds two additional forwarding channels:
- Syslog — Send logs to local or remote syslog servers (UDP/TCP). Perfect for SIEM integration with tools like Graylog, Splunk, or your organization’s security monitoring infrastructure.
- External Database — Forward events to a separate MySQL/MariaDB database. Ideal for compliance requirements where you need tamper-proof audit trails stored independently of your WordPress installation.
Premium users also get additional log formats: RFC 5424 (syslog standard), JSON Lines (great for ELK, Graylog, Splunk), and Logfmt (perfect for Grafana Loki).
For Developers: Custom Event Retention Rules
Need to keep certain events forever while purging others on schedule? The new simple_history/purge_db_where filter makes this possible. You can now implement per-logger retention periods or prevent specific event types from ever being deleted.
There’s also a new simple_history/db/purge_done action that fires once when purging completes, giving you the total count of deleted events — useful for monitoring and reporting.
See the documentation for implementation examples.
Improved Reliability: Database Table Auto-Recovery
We’ve fixed an issue where Simple History’s database tables weren’t being created in certain scenarios:
- When using the plugin as an MU plugin
- After site duplication (where options are copied but custom tables are not)
- During multisite network activation
The plugin now automatically detects and recreates missing tables when needed, so your logging continues without interruption.
Other Fixes
- IP addresses now show correctly when expanding grouped similar events
- Debug page works with SQLite — no more “No tables found” errors when using wp-playground or other SQLite environments
Get the Update
Simple History 5.21.0 is available now. Update from your WordPress dashboard or download it from WordPress.org.
Want more? Simple History Premium adds Syslog and External Database channels for log forwarding, plus longer retention, exports, stealth mode, and more.
Full Changelog
Added
- “Show surrounding events” feature to view events chronologically before and after a specific event, useful for debugging to see what happened around a particular event. Available via the event actions menu (administrators only), REST API, and WP-CLI. #610.
- Log Forwarding feature to send events to external destinations for backup, compliance, and security purposes. Includes File Channel for writing events to local log files with automatic rotation. Premium add-on adds Syslog and External Database channels. #573.
simple_history/purge_db_wherefilter for custom event retention rules, allowing per-logger retention periods or keeping certain events forever. See documentation.simple_history/db/purge_doneaction that fires once when purge completes, with total deleted count.Helpers::count_events()function for counting events in the database.
Fixed
- Database tables not being created when using the plugin as MU plugin, after site duplication (where options are copied but custom tables are not), or during multisite network activation. The plugin now auto-recovers by recreating missing tables when needed. #606.
- IP addresses not showing when expanding grouped similar events.
- Debug page showing “No tables found” when using SQLite (e.g., wp-playground) due to missing dbstat extension.