JS Error Logger
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})
Multisite
The plugin works with multisite. There’s one error log per site.
| Domain | Exposures | Headers | Last Checked |
|---|---|---|---|
| m*n*e*l*m*g*e.com (WP 6.9.4) | F | 2026-04-24 06:46:05 | |
| h*t*l*n*v*.com (WP 6.9.4) | F | 2026-04-23 15:13:20 | |
| a*g*l*o*e*r*h*e*c*e.com (WP 6.9.4) | C | 2026-04-16 05:26:06 | |
| u*c*.org.uk | F | 2026-04-14 23:43:04 | |
| j*l*e*o*b*.naiwe.com | F | 2026-04-12 05:20:41 | |
| a*i*e*r*t*r*.naiwe.org | F | 2026-04-10 17:28:46 | |
| d*a*e*a*u*c*i.naiwe.org | F | 2026-04-10 17:28:46 | |
| n*w*.naiwe.org | F | 2026-04-10 17:28:46 | |
| c*d*e*s*.es | D | 2026-04-08 22:30:15 | |
| c*d*e*s*.it | D | 2026-04-08 22:30:15 | |
| c*d*e*s*.nl | F | 2026-04-08 22:30:15 | |
| c*d*e*s*.dk | D | 2026-04-08 22:30:15 | |
| c*d*e*s*.de | D | 2026-04-08 22:30:15 | |
| c*d*e*s*.fr | D | 2026-04-08 22:30:15 | |
| n*i*e.org | — | 2026-03-29 05:29:44 | |
| n*i*e.com | — | 2025-11-09 09:38:25 | |
| j*s*e*s*n*l*.com | — | 2025-11-08 12:00:28 | |
| j*g*e*i*.com | — | 2025-11-08 11:38:25 | |
| c*d*e*s*.com | — | 2025-11-06 18:37:48 |