描述
The plugin catches most JS errors, logs them, and displays them in a dashboard widget.
Here are some of its features:
- Except for the plugin settings, there is no database storage involved. Log is written in a “.log” file.
- Display latest JS errors in a dashboard widget.
- Refresh errors from the dashboard widget.
- See the full error log on a separate page.
- Ignore errors if the user agent contains a specific string.
- Ignore errors if the error contains a specific string.
- Ignore errors if the script url contains a specific string.
- See which page and which script triggered the errors.
- Choose the maximum amount of errors to log per page load.
- Exclude logging errors from specific post types.
- Choose how ajax calls are made.
Developer hooks and filters
The plugin cleans the log every 24 hours, to only keep the last 100 entries.
You may use the “jserrlog_max_log_entries” WP filter to enable more or less entries, by returning an integer: add_filter('jserrlog_max_log_entries',function(){return 200;})
Alter error data:
You may use the “jserrlog_pre_insert_error” WP filter to modify the error data before it’s inserted into the log file: add_filter('jserrlog_pre_insert_error',function($error_data){return $error_data;})
Trigger integrations:
You may use the “jserrlog_after_log” WP hook to trigger an action (Slack notification, etc.) after an error was logged: add_action('jserrlog_after_log',function($error_data){//do something})
Backup old errors:
You may use the “jserrlog_before_log_maintenance” WP hook to trigger an action (archive errors, etc.) before old errors are deleted: add_action('jserrlog_before_log_maintenance',function($errors){//do something})
Request hardening:
You may use the “jserrlog_enforce_same_host_origin” WP filter to require same-host Origin/Referer checks for logging requests (default true): add_filter('jserrlog_enforce_same_host_origin',function(){return true;})
You may use the “jserrlog_rate_limit_requests” and “jserrlog_rate_limit_window” WP filters to control request throttling (defaults: 60 requests per 60 seconds): add_filter('jserrlog_rate_limit_requests',function(){return 120;}); add_filter('jserrlog_rate_limit_window',function(){return 60;});
You may use the “jserrlog_max_payload_bytes”, “jserrlog_max_batch_errors” and “jserrlog_max_error_field_length” WP filters to limit incoming payload sizes (defaults: 16384 bytes, 20 errors per batch, 512 chars per field): add_filter('jserrlog_max_payload_bytes',function(){return 32768;});
You may use the “jserrlog_duplicate_window” WP filter to suppress duplicate errors for a short period (default: 60 seconds): add_filter('jserrlog_duplicate_window',function(){return 30;});
Multisite
The plugin works with multisite. There’s one error log per site.
屏幕截图
安装
- Visit the Plugins page within your dashboard and select “Add New”
- Search for “JS Error Logger”
- Click “Install”
评价
贡献者及开发者
更新日志
1.5
- Added a cookie-based “new” indicator in the dashboard widget to highlight unseen errors
- Improved the dashboard widget error display with error type labels above the message
- Refined dashboard widget spacing and styling for a cleaner table layout
1.4.3
- Fix: Badly scoped call to WP_FileSystem
- Fix: Clicking on the dashboard widget “Refresh log” button was causing jQuery modals to instantiate again
1.4
- Tested up to WordPress 7.0
- Prioritized navigator.sendBeacon for delayed ajax sending
- Added request hardening controls (same-host origin check, rate limiting, payload limits, duplicate suppression) with WP filters
- Fixed log directory path to use uploads base directory for stable storage across months
- Added legacy log migration from previous date-based log directory
- Improved log writes with append + lock strategy and fallback to reduce race conditions
- Removed log maintenance from settings page render; maintenance now runs on its scheduled hook only
- Cleared scheduled cleanup hook on plugin deactivation instead of just deletion
- Updated the default accent color for WordPress 7.0+ from #2271b1 to #3858e9
- Accessibility improvements
1.3.1
- Tested up to WordPress 6.9
- Renamed some template variables to ensure they can’t be mistaken for global variables
- Changed some native PHP functions such as mk_dir, rm_dir, fopen, etc… to use WP_Filesystem
1.3
- Dropped support for PHP<7.4
- Added links to our other plugins in the settings area
- Addition of an admin notice
- Addition of 2 developer hooks and 1 filter
1.2
- Accessibility improvements
- Fix: Make sure the mu-plugin is also deleted when deactivating the plugin, and not just when uninstalling it
- Added 3 more settings to the UI that were previously only accessible through WP filters
1.1.11
- Fix: Properly dequeue the early loaded script in the front-end, if js error logging is not enabled
1.1.10
- Security hardening
- Documentation of variables for the translators
- Minor Fix: Ensure the mu-plugins directory is writable before creating the early loader, to avoid PHP warnings
1.1.9
- Fix: Properly dequeue the early loaded script in admin, if back end logging is not enabled
1.1.7
- Improvement: better update mechanism to make sure the mu-plugin also gets updated
1.1.6
- New: it is now possible to also log back end js errors
1.1.5
- Fix: An HTML attribute was escaped with wp_kses instead of esc_attr, which could lead to some display issues if double quotes were in the attribute text
1.1.4
- Fix: When the dashboard widget was initially empty, then refreshed, and an error was there, the “View” button was not clickable
1.1.3
- Fix: A change in the ID of the dashboard widget was preventing the “Refresh log” button from working properly
1.1.2
- Fix: Removed the “string” return type on rewrite_script_src to prevent potential issues
1.1.1
- Fix: issue with special character encoding
- Fix: Missing trailing slash during the creation of the “js-error-logger-log” directory
- Improvement: Plugin should detect the most popular caching plugins, and remind users to clear their cache after changing some settings
1.0
- Initial Release



