{"id":336408,"date":"2026-07-06T19:26:41","date_gmt":"2026-07-06T19:26:41","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/honeill-update-log\/"},"modified":"2026-07-06T19:26:17","modified_gmt":"2026-07-06T19:26:17","slug":"honeill-update-log","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/honeill-update-log\/","author":23524743,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.0","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Honeill Update Log","header_author":"Hayden O'Neill","header_description":"Know exactly what changed and when. Logs every plugin install, update, activation, deactivation and deletion \u2014 with who did it, the from\/to version, and whether it worked \u2014 all viewable and exportable under Tools.","assets_banners_color":"","last_updated":"2026-07-06 19:26:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":38,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"honeill","date":"2026-07-06 19:26:17"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[8531,8534,13434,2391,270390],"plugin_category":[],"plugin_contributors":[269707],"plugin_business_model":[],"class_list":["post-336408","plugin","type-plugin","status-publish","hentry","plugin_tags-activity-log","plugin_tags-audit-log","plugin_tags-changelog","plugin_tags-plugins","plugin_tags-update-history","plugin_contributors-honeill","plugin_committers-honeill"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/honeill-update-log.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Honeill Update Log keeps a tidy record of everything that happens to the plugins on your site, so you always know what changed and when \u2014 invaluable when a site breaks right after an update, or when several people manage the same install.<\/p>\n\n<p>For every event it records:<\/p>\n\n<ul>\n<li>the date and time,<\/li>\n<li>the plugin name and folder\/file,<\/li>\n<li>the event \u2014 installed, updated, activated, deactivated, or deleted,<\/li>\n<li>the version (and, for updates, the version it came <strong>from<\/strong> and went <strong>to<\/strong>),<\/li>\n<li>whether it succeeded,<\/li>\n<li>and who did it (or \"Auto-update \/ system\" for unattended updates).<\/li>\n<\/ul>\n\n<p>View the log under <strong>Tools \u2192 Update Log<\/strong>, filter by event type, page through it, and export the whole thing to CSV. Old entries are pruned automatically.<\/p>\n\n<p>Unlike the big all-in-one activity loggers, this does one thing: plugin lifecycle events, lightweight and exportable.<\/p>\n\n<h4>Privacy \/ data<\/h4>\n\n<p>Everything is stored in a single custom table in your own database. The plugin makes <strong>no external connections<\/strong> and sends no data anywhere. It records the WordPress display name (or login) of the user who performed each action, purely for your own audit trail.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>honeill-update-log<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP via Plugins \u2192 Add New \u2192 Upload Plugin.<\/li>\n<li>Activate the plugin. Logging starts immediately.<\/li>\n<li>View the log under <strong>Tools \u2192 Update Log<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20is%20the%20log%20stored%3F\"><h3>Where is the log stored?<\/h3><\/dt>\n<dd><p>In a custom table (<code>{prefix}_honeill_update_log<\/code>) in your site's database. Deleting the plugin removes that table.<\/p><\/dd>\n<dt id=\"does%20it%20log%20theme%20or%20wordpress%20core%20updates%3F\"><h3>Does it log theme or WordPress core updates?<\/h3><\/dt>\n<dd><p>This version focuses on plugins. Theme and core support is a planned addition.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20my%20site%20down%3F\"><h3>Does it slow my site down?<\/h3><\/dt>\n<dd><p>No. It only writes a row when a plugin event actually happens, and the log screen is admin-only.<\/p><\/dd>\n<dt id=\"how%20long%20are%20entries%20kept%3F\"><h3>How long are entries kept?<\/h3><\/dt>\n<dd><p>The most recent 5,000 entries are kept, and anything older than a year is pruned by a daily cleanup.<\/p><\/dd>\n<dt id=\"why%20does%20an%20update%20sometimes%20show%20%22from%22%20as%20blank%3F\"><h3>Why does an update sometimes show \"from\" as blank?<\/h3><\/dt>\n<dd><p>The previous version is captured just before an update runs. For a brand-new install (or if the plugin was added before this plugin was active) there is no earlier version to record.<\/p><\/dd>\n<dt id=\"can%20someone%20wipe%20the%20log%20to%20hide%20what%20they%20did%3F\"><h3>Can someone wipe the log to hide what they did?<\/h3><\/dt>\n<dd><p>Clearing is limited to administrators (super admins on multisite), and every clear writes a \"Log cleared\" entry recording who did it \u2014 so it can't be done silently. To disable clearing completely, add: <code>add_filter( 'honeill_update_log_can_clear', '__return_false' );<\/code><\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Hardened \"Clear log\": administrators only (super admins on multisite), the clear is itself logged so it can't be done silently, and it can be disabled via the honeill_update_log_can_clear filter.<\/li>\n<li>Added a \"Log cleared\" event type, shown in the log and the events filter.<\/li>\n<li>Branded the admin menu label (Tools \u2192 Honeill Update Log), tidied the plugin description, and resolved Plugin Check warnings on the plugin's own custom-table queries.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: logs plugin install, update (from\/to version), activate, deactivate and delete, with user, timestamp and success. Tools screen with filtering, pagination, CSV export and daily auto-prune.<\/li>\n<\/ul>","raw_excerpt":"A focused audit log of plugin installs, updates, activations, deactivations and deletions \u2014 who, when, from\/to version, and success.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/336408","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=336408"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/honeill"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=336408"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=336408"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=336408"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=336408"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=336408"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=336408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}