=== REST API Log === Contributors: gungeekatx Tags: wp rest api, rest api, wp api, api, json, json api, log, logging, elasticpress, elasticsearch Donate link: https://github.com/petenelson/wp-rest-api-log Requires at least: 4.7 Tested up to: 6.7.1 Stable tag: 1.7.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html WordPress plugin to log REST API requests and responses == Description == WordPress plugin to log [REST API](http://v2.wp-api.org/) requests and responses (for v2 of the API). Includes: * WordPress admin page to view and search log entries * API endpoint to access log entries via JSON * Filters to customize logging * Custom endpoint logging * ElasticPress logging Find us on [GitHub](https://github.com/petenelson/wp-rest-api-log)! Roadmap * Better search capabilities for log entries via the REST API endpoint == Installation == 1. Upload the wp-rest-api-log directory to the `/wp-content/plugins/` directory 2. Activate the plugin through the 'Plugins' menu in WordPress 3. Go to Settings -> REST API Log to enable or disable logging 4. Go to Tools -> REST API Log to start viewing log entries == Changelog == = v1.7.0 May 8, 2023 = * Fixed bugs related to Method and Status filtering. * Removed deprecated FILTER_SANITIZE_STRING calls. * Updated highlight.js version * Updated clipboard.js version = v1.6.9 September 9, 2022 = * Updated highlight.js version * Updated clipboard.js version = v1.6.8 October 30, 2020 = * Updated the Purge All Entries functionality in the admin to purge batches of 25 at a time. * Updated CLI purge command with a progress bar. * Fixed ClipboardJS error (props itowhid06) = v1.6.7 March 31, 2019 = * Added admin notice about running the plugin on a production server * Set the default purge days to 7 * Updated clipboard.js version = v1.6.6 November 9, 2018 = * Moved taxonomy registration to a separate file, made taxonomies not public to prevent them from automatically showing in Yoast SEO sitemaps * Updated highlight.js version * Updated minimum WP version to 4.7 * Updated unit test framework = v1.6.5 July 26, 2017 = * Fixed some escaping issues in admin and new-line characters when saving to database (props davidanderson) * Updated highlight.js and clipboard.js versions = v1.6.4 May 26, 2017 = * Fixed an issue with the URL in the settings tabs (props davidanderson) = v1.6.3 March 28, 2017 = * Updated logging for multidimensional query parameters (props mnelson4) = v1.6.2 March 10, 2017 = * Fixed bug in HTTPS download URLs. * Fixed bug in download URL permissions. = v1.6.0 March 9, 2017 = * Added ability to download request and response fields as JSON files, as well as copy to clipboard. * Added button on settings page to Purge All Log Entries. * Tweaked some of the ElasticPress routes that skip logging. = v1.5.2 February 21, 2017 = * Fixed a bug with ElasticPress logging getting stuck in a loop regarding the _nodes/plugins URL. = v1.5.1 February 15, 2017 = * Removed hidden custom taxonomies from the navigation menu admin (props [phh](https://github.com/phh) for the pull request). = v1.5.0 February 2, 2017 = * Added logging for the user making the request (props [drsdre](https://github.com/drsdre) for the pull request). * Added Settings and Log links from the Plugins page. * Updated term fetching when viewing log entries for fewer database queries and better performance. * Updated highlight.js to 9.9.0 = v1.4.0 January 23, 2017 = * Added the ability to filter routes for logging, either include or exclude specific routes. = v1.3.0 December 5, 2016 = * Added support for logging HTTP_X_FORWARDED_FOR, useful for servers behind a proxy or load balancer. * Changed plugin name to REST API Log * Changed the wp-rest-api-log post type 'public' setting to false to prevent it from showing up in searches. * Updated Highlight JS version to 9.7.0 * Updated the internal process for granting administrator role access to the custom post type * Bug fix: Header values with colons were not being stored correctly. * Bug fix: Use proper HTML escaping when viewing log entries. = v1.2.0 July 6, 2016 = * Added support for [ElasticPress](https://wordpress.org/plugins/elasticpress/) logging * Fixed undefined constant error on Help page (props vinigarcia87) = v1.1.1 May 15, 2016 = * Fixed error during activation (props pavelevap) = v1.1.0 April 28, 2016 = * Added cron job to cleanup old log entries * Added setting to exclude the WP core /oembed API endpoint * Don't diplay log entries in the Insert Link modal = v1.0.0-beta2 April 10, 2016 = * Switched from custom tables to built-in WordPress tables using a custom post type (wp-rest-api-log) * Method, status, and source are now tracked using taxonomies * Viewing log entries now uses the standard WordPress admin UI, includes filters for method, status, and source * Added admin settings with the option to enable or disable logging * Added WP-CLI support: wp rest-api-log * Added .pot file to support translations **NOTE: if you are upgrading from the previous version, you can run the "wp rest-api-log migrate" WP-CLI command to migrate your existing logs into the new custom post type** = v1.0.0-beta1 July 9, 2015 = * Initial release == Upgrade Notice == = v1.7.0 May 8, 2023 = * Fixed bugs related to Method and Status filtering. * Removed deprecated FILTER_SANITIZE_STRING calls. * Updated highlight.js version * Updated clipboard.js version == Frequently Asked Questions == = How do I use ElasticPress logging? = [ElasticPress](https://wordpress.org/plugins/elasticpress/) is a plugin than interfaces WordPress to the [ElasticSearch](https://www.elastic.co/products/elasticsearch) search service. Because ElasticSearch has its own REST API for indexing and searching data, it was a natural fit to extend logging support via this REST API Logging plugin. You can go into Settings > ElasticPress to enable logging for requests & responses. You can also disable REST API logging if you only need ElasticPress logging. == Screenshots == 1. Sample list of log entries 2. Sample log entry details