WordPress.org

Make WordPress Core

Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#5033 closed enhancement (fixed)

Better error_reporting and a debug mode

Reported by: ozh Owned by:
Milestone: 2.5 Priority: normal
Severity: normal Version:
Component: General Keywords: has-patch 2nd-opinion early
Focuses: Cc:

Description

Following a discussion on wp-hackers in September, here is a proposition for a better error_reporting handling, and an optional debug mode (plugin) developers could activate on a per-blog basis

It would consist of the following:

in wp-settings.php:

if (defined('WPDEBUG') and WPDEBUG == true) {
   error_reporting(E_ALL);
} else {
   error_reporting(E_ALL ^ E_NOTICE);
}

Then, on wp-config.php for developers:

define('WPDEBUG', true);

Attachments (1)

const_wpdebug.diff (597 bytes) - added by ozh 7 years ago.
optional debug mode

Download all attachments as: .zip

Change History (14)

ozh7 years ago

optional debug mode

comment:1 Nazgul7 years ago

  • Milestone changed from 2.3.1 to 2.4

See #3155

comment:2 santosj7 years ago

I think it should be:

if (defined('WPPRODUCTION') && ( true == WPPRODUCTION ) ) {
   error_reporting(0);
} else {
   error_reporting(E_ALL);
}

And have in the config.php

WPPRODUCTION = true;

comment:3 markjaquith7 years ago

Santosj,

We can't modify wp-config.php -- so upgraders wouldn't get constant, and would be stuck in debug mode.

comment:4 santosj7 years ago

if (defined('WPDEBUG') && ( true == WPDEBUG) ) {
   error_reporting(E_ALL);
} else {
   error_reporting(0);
}

Oh yeah. Assume Production, unless stated otherwise in config.php.

comment:5 g30rg3x7 years ago

  • Component changed from Optimization to General
  • Keywords debug error_reporting e_all e_notice notice removed
  • Milestone changed from 2.4 to 2.3

+1, but i think this should be consider in the 2.3 release

comment:6 foolswisdom7 years ago

  • Milestone changed from 2.3 to 2.4

comment:7 foolswisdom7 years ago

  • Keywords early added

comment:8 darkdragon7 years ago

It is not my intention to be rude, the code would functionality be the same as it is now but allow those who want to see all errors to see them. However, I think that it should be instead assumed that if there is no WPDEBUG constant in wp-config.php, that the server is production.

In this way, I don't have to keep replacing the E_ALL with "0" each time I upgrade.

comment:9 westi7 years ago

  • Resolution set to fixed
  • Status changed from new to closed

(In [6179]) Enable developers to turn on notices from wp-config.php. Relates #3155. Fixes #5033 props Ozh.

comment:10 follow-up: matt7 years ago

  • Resolution fixed deleted
  • Status changed from closed to reopened

Could we make this have an underscore like almost all other of our defines. We should try to be consistent where possible.

comment:11 in reply to: ↑ 10 westi7 years ago

Replying to matt:

Could we make this have an underscore like almost all other of our defines. We should try to be consistent where possible.

I don't see why not.

It ended up as WPDEBUG as that was in the patch and I only looked at WPLANG when I was in my wp-config.php testing.

Searching the codebase WP_DEBUG makes more sense it seems.

comment:12 westi7 years ago

  • Resolution set to fixed
  • Status changed from reopened to closed

(In [6181]) s/WPDEBUG/WP_DEBUG/g Fixes #5033

comment:13 docwhat7 years ago

Shouldn't that be:

  error_reporting(E_ALL ^ E_NOTICE ^ E_USER_NOTICE);

So that user notices can be used?

Ciao!

Note: See TracTickets for help on using tickets.