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 |
|---|---|---|---|
| t*l*r*i*h*l*a*.n*i*e.org | F | 2026-06-06 07:08:31 | |
| m*n*e*l*m*g*e.com (WP 7.0) | F | 2026-06-02 22:01:56 | |
| j*s*e*s*n.n*i*e.org | F | 2026-06-02 05:59:49 | |
| n*i*e.org | F | 2026-05-30 23:33:44 | |
| h*t*l*n*v*.com (WP 7.0) | F | 2026-05-26 06:13:17 | |
| t*l*r*i*h*l*a*.n*i*e.com | F | 2026-05-24 18:41:26 | |
| s*i*a*n*.com (WP 7.0) | F | 2026-05-22 18:54:21 | |
| j*l*e*o*b*.n*i*e.org | F | 2026-05-20 09:06:35 | |
| a*g*l*o*e*r*h*e*c*e.com (WP 6.9.4) | C | 2026-05-20 03:38:18 | |
| u*c*.o*g.uk | F | 2026-05-16 09:14:04 | |
| y*l*n*e*c*e*n.n*i*e.com | F | 2026-05-14 12:55:12 | |
| j*l*e*o*b*.n*i*e.com | F | 2026-05-12 16:14:33 | |
| a*i*e*r*t*r*.n*i*e.org | F | 2026-05-11 00:32:54 | |
| d*a*e*a*u*c*i.n*i*e.org | F | 2026-05-11 00:32:54 | |
| n*w*.n*i*e.org | F | 2026-05-11 00:32:54 | |
| n*i*e.com | F | 2026-05-10 21:59:38 | |
| c*d*e*s*.es | D | 2026-05-09 05:19:29 | |
| c*d*e*s*.it | D | 2026-05-09 05:19:29 | |
| c*d*e*s*.nl | F | 2026-05-09 05:19:29 | |
| c*d*e*s*.dk | D | 2026-05-09 05:19:29 | |
| c*d*e*s*.de | D | 2026-05-09 05:19:29 | |
| c*d*e*s*.fr | D | 2026-05-09 05:19:29 | |
| k*i*a*a.de | D | 2026-05-06 17:56:09 | |
| c*d*e*s*.c*.uk | D | 2026-05-04 09:11:55 | |
| k*i*h*e*s*m.n*i*e.com | F | 2026-05-04 07:53:31 | |
| j*s*e*s*n*l*.com | F | 2026-05-03 20:04:28 | |
| c*d*e*s*.com | D | 2026-05-03 10:17:21 | |
| j*g*e*i*.com | F | 2026-05-02 13:52:28 |