From 7eb0b60a1ff4a763b07fcbb3dedf8a7d74d466c4 Mon Sep 17 00:00:00 2001 From: skodak Date: Sat, 23 Sep 2006 09:38:39 +0000 Subject: [PATCH] debugging and error reporting level fixes and improvements MDL-6671 --- admin/index.php | 4 ++-- enrol/ldap/enrol_ldap_sync.php | 2 +- file.php | 6 ++---- filter/algebra/pix.php | 3 +++ filter/tex/pix.php | 3 +++ lang/en_utf8/admin.php | 14 ++++++-------- lib/accesslib.php | 8 ++++---- lib/adminlib.php | 18 +++++------------- lib/moodlelib.php | 13 ++++++++++++- lib/setup.php | 2 +- lib/weblib.php | 20 ++++++++++++++------ mod/glossary/exportfile.php | 3 +++ mod/quiz/quizfile.php | 5 ++++- rss/file.php | 3 +++ user/pix.php | 3 +++ user/pixgroup.php | 3 +++ 16 files changed, 69 insertions(+), 41 deletions(-) diff --git a/admin/index.php b/admin/index.php index 8f620b5c4857d..8a90157252471 100644 --- a/admin/index.php +++ b/admin/index.php @@ -105,7 +105,7 @@ if (! $maintables) { /// hide errors from headers in case debug enabled in config.php $origdebug = $CFG->debug; - $CFG->debug = 5; + $CFG->debug = DEBUG_MINIMAL; error_reporting($CFG->debug); if (empty($agreelicence)) { $strlicense = get_string("license"); @@ -208,7 +208,7 @@ // hide errors from headers in case debug is enabled $origdebug = $CFG->debug; - $CFG->debug = 5; + $CFG->debug = DEBUG_MINIMAL; error_reporting($CFG->debug); // logout in case we are upgrading from pre 1.7 version - prevention of weird session problems diff --git a/enrol/ldap/enrol_ldap_sync.php b/enrol/ldap/enrol_ldap_sync.php index 4b68941585981..d56cb119c1119 100755 --- a/enrol/ldap/enrol_ldap_sync.php +++ b/enrol/ldap/enrol_ldap_sync.php @@ -14,7 +14,7 @@ require_once($CFG->dirroot . "/enrol/ldap/enrol.php"); // ensure errors are well explained - $CFG->debug = E_NOTICE; + $CFG->debug = DEBUG_NORMAL; // update enrolments -- these handlers should autocreate courses if required $enrol = new enrolment_plugin_ldap(); diff --git a/file.php b/file.php index 2984ab08578ce..92232ebf7b852 100644 --- a/file.php +++ b/file.php @@ -15,10 +15,8 @@ $lifetime = $CFG->filelifetime; } - // remove moodle specific debug messages by switching the sign bit in error level bitmask - if ($CFG->debug > 0) { - $CFG->debug = $CFG->debug | 0x80000000; - } + // disable moodle specific debug messages + disable_debugging(); $relativepath = get_file_argument('file.php'); $forcedownload = optional_param('forcedownload', 0, PARAM_BOOL); diff --git a/filter/algebra/pix.php b/filter/algebra/pix.php index 3e34c92f212bd..56d81639979b0 100644 --- a/filter/algebra/pix.php +++ b/filter/algebra/pix.php @@ -16,6 +16,9 @@ } } + // disable moodle specific debug messages + disable_debugging(); + require_once($CFG->libdir.'/filelib.php'); $CFG->texfilterdir = 'filter/tex'; diff --git a/filter/tex/pix.php b/filter/tex/pix.php index 37bed2d1d3456..b98d5fedd55ad 100644 --- a/filter/tex/pix.php +++ b/filter/tex/pix.php @@ -16,6 +16,9 @@ } } + // disable moodle specific debug messages + disable_debugging(); + require_once($CFG->libdir.'/filelib.php'); require_once('defaultsettings.php' ); require_once('latex.php'); diff --git a/lang/en_utf8/admin.php b/lang/en_utf8/admin.php index 687255a57e8e8..b9b58035b6264 100644 --- a/lang/en_utf8/admin.php +++ b/lang/en_utf8/admin.php @@ -144,7 +144,7 @@ $string['sessioncookie'] = 'Cookie prefix'; $string['sessioncookiepath'] = 'Cookie path'; $string['enablerssfeeds'] = 'Enable RSS feeds'; -$string['debug'] = 'Debug notices'; +$string['debug'] = 'Debug messages'; $string['perfdebug'] = 'Performance info'; $string['enablestats'] = 'Enable statistics'; $string['statsfirstrun'] = 'Maximum processing interval'; @@ -304,13 +304,11 @@ $string['dbmigrateconnecerror'] = 'Could not connect to the database specified.'; $string['dbmigrateencodingerror'] = 'The database specified has encoding $a rather than required UNICODE/UTF8.
Please specify another.'; $string['dbmigratepostgres'] = 'It seems that you are using PostgreSQL as the database server. To continue the migration process you need to manually create a new database with encoding \"UNICODE\"(PostgreSQL 7) or \"UTF8\" (PostgreSQL 8) to store the migrated data. Please enter your new database connection settings below to continue:'; -$string['debugnone'] = 'Do not show any debugging notices'; -$string['debugerror'] = 'E_ERROR: Show only fatal errors'; -$string['debugwarning'] = 'E_WARNING: show only serious warnings'; -$string['debugparse'] = 'E_PARSE: show parsing errors'; -$string['debugnotice'] = 'E_NOTICE: show informational notices'; -$string['debugall'] = 'E_ALL: show all reasonable feedback'; -$string['debugstrict'] = 'E_STRICT: show absolutely everything, even very minor errors'; +$string['debugnone'] = 'NONE: Do not show any errors or warnings'; +$string['debugminimal'] = 'MINIMAL: Show only fatal errors'; +$string['debugnormal'] = 'NORMAL: Show errors, warnings and notices'; +$string['debugall'] = 'ALL: Show all reasonable PHP debug messages'; +$string['debugdeveloper'] = 'DEVELOPER: extra Moodle debug messages for developers'; $string['density'] = 'Density'; $string['download'] = 'Download'; $string['edithelpdocs'] = 'Edit help documents'; diff --git a/lib/accesslib.php b/lib/accesslib.php index 321b08e071436..c1d90dcbc8727 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -419,7 +419,7 @@ function capability_search($capability, $context, $capabilities) { global $USER, $CFG; if (isset($capabilities[$context->id][$capability])) { - debugging("Found $capability in context $context->id at level $context->contextlevel: ".$capabilities[$context->id][$capability], E_ALL); + debugging("Found $capability in context $context->id at level $context->contextlevel: ".$capabilities[$context->id][$capability], DEBUG_DEVELOPER); return ($capabilities[$context->id][$capability]); } @@ -481,7 +481,7 @@ function capability_search($capability, $context, $capabilities) { error ('This is an unknown context!'); return false; } - debugging("Found $capability recursively from context $context->id at level $context->contextlevel: $permission", E_ALL); + debugging("Found $capability recursively from context $context->id at level $context->contextlevel: $permission", DEBUG_DEVELOPER); return $permission; } @@ -1361,7 +1361,7 @@ function get_roles_with_capability($capability, $permission=NULL, $context='') { function role_assign($roleid, $userid, $groupid, $contextid, $timestart=0, $timeend=0, $hidden=0, $enrol='manual') { global $USER, $CFG; - debugging("Assign roleid $roleid userid $userid contextid $contextid", E_ALL); + debugging("Assign roleid $roleid userid $userid contextid $contextid", DEBUG_DEVELOPER); /// Do some data validation @@ -2765,4 +2765,4 @@ function get_users_from_role_on_context($role, $context) { AND roleid = $role->id"); } -?> +?> \ No newline at end of file diff --git a/lib/adminlib.php b/lib/adminlib.php index 7841dd0e27ea7..51f51330f4fd7 100644 --- a/lib/adminlib.php +++ b/lib/adminlib.php @@ -2137,13 +2137,11 @@ function admin_setting_special_debug() { $name = 'debug'; $visiblename = get_string('debug', 'admin'); $description = get_string('configdebug', 'admin'); - $choices = array( 0 => get_string('debugnone', 'admin'), - E_ERROR => get_string('debugerror', 'admin'), - E_WARNING => get_string('debugwarning', 'admin'), - E_PARSE => get_string('debugparse', 'admin'), - E_NOTICE => get_string('debugnotice', 'admin'), - E_ALL => get_string('debugall', 'admin'), - 2048 => get_string('debugstrict', 'admin') // E_STRICT is php5 only + $choices = array( DEBUG_NONE => get_string('debugnone', 'admin'), + DEBUG_MINIMAL => get_string('debugminimal', 'admin'), + DEBUG_NORMAL => get_string('debugnormal', 'admin'), + DEBUG_ALL => get_string('debugall', 'admin'), + DEBUG_DEVELOPER => get_string('debugdeveloper', 'admin') ); parent::admin_setting_configselect($name, $visiblename, $description, '', $choices); } @@ -2151,12 +2149,6 @@ function admin_setting_special_debug() { function get_setting() { global $CFG; if (isset($CFG->debug)) { - if ($CFG->debug == 7) { // Old values - return 1; - } - if ($CFG->debug == 15) { // Old values - return 16; - } return $CFG->debug; } else { return NULL; diff --git a/lib/moodlelib.php b/lib/moodlelib.php index eed3e3c7b90b7..e1cfc3905d612 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -213,6 +213,17 @@ */ define('PAGE_COURSE_VIEW', 'course-view'); +/// Debug levels /// +/** no warnings at all */ +define ('DEBUG_NONE', 0); +/** E_ERROR | E_PARSE */ +define ('DEBUG_MINIMAL', 5); +/** E_ERROR | E_PARSE | E_WARNING | E_NOTICE */ +define ('DEBUG_NORMAL', 15); +/** E_ALL without E_STRICT and E_RECOVERABLE_ERROR for now */ +define ('DEBUG_ALL', 2047); +/** DEBUG_ALL with extra Moodle debug messages - (DEBUG_ALL | 32768) */ +define ('DEBUG_DEVELOPER', 34815); /// PARAMETER HANDLING //////////////////////////////////////////////////// @@ -6698,4 +6709,4 @@ function loadeditor($args) { // vim:autoindent:expandtab:shiftwidth=4:tabstop=4:tw=140: -?> +?> \ No newline at end of file diff --git a/lib/setup.php b/lib/setup.php index 9df6bb1f339a4..b1a969cef9ceb 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -255,7 +255,7 @@ /// Set error reporting back to normal if ($originaldatabasedebug == -1) { - $CFG->debug = E_PARSE; + $CFG->debug = DEBUG_MINIMAL; } else { $CFG->debug = $originaldatabasedebug; } diff --git a/lib/weblib.php b/lib/weblib.php index e38296995b736..633d1ef7effc4 100644 --- a/lib/weblib.php +++ b/lib/weblib.php @@ -5341,19 +5341,19 @@ function page_doc_link($text='', $iconpath='') { } /** - * Returns true if the current site debugging settings are equal - * to the specified level: E_NOTICE, E_ALL, E_STRICT etc + * Returns true if the current site debugging settings are equal or above specified level. * eg use like this: * - * 1) debugging('a normal notice'); - * 2) debugging('something really picky', E_STRICT); - * 3) if (debugging()) { echo "a bunch of commands could be here" } + * 1) debugging('a normal debug notice'); + * 2) debugging('something really picky', DEBUG_ALL); + * 3) debugging('annoying debug message only for develpers', DEBUG_DEVELOPER); + * 4) if (debugging()) { echo "a bunch of commands could be here" } * * @param string $message a message to print * @param int $level the level at which this debugging statement should show * @return bool */ -function debugging($message='', $level=E_NOTICE) { +function debugging($message='', $level=DEBUG_NORMAL) { global $CFG; @@ -5370,5 +5370,13 @@ function debugging($message='', $level=E_NOTICE) { return false; } +/** + * Disable debug messages from debugging(), while keeping PHP error reporting level as is. + */ +function disable_debugging() { + global $CFG; + $CFG->debug = $CFG->debug | 0x80000000; // switch the sign bit in integer number ;-) +} + // vim:autoindent:expandtab:shiftwidth=4:tabstop=4:tw=140: ?> diff --git a/mod/glossary/exportfile.php b/mod/glossary/exportfile.php index 4be4cdca468a8..0854b9ec1d2be 100644 --- a/mod/glossary/exportfile.php +++ b/mod/glossary/exportfile.php @@ -3,6 +3,9 @@ require_once("../../config.php"); require_once("lib.php"); + // disable moodle specific debug messages + disable_debugging(); + $id = required_param('id', PARAM_INT); // Course Module ID $l = optional_param('l','', PARAM_ALPHANUM); diff --git a/mod/quiz/quizfile.php b/mod/quiz/quizfile.php index 5ba5477078cd0..44d3b0f9348a7 100644 --- a/mod/quiz/quizfile.php +++ b/mod/quiz/quizfile.php @@ -13,7 +13,10 @@ } else { $lifetime = $CFG->filelifetime; } - + + // disable moodle specific debug messages + disable_debugging(); + $relativepath = get_file_argument('quizfile.php'); if (!$relativepath) { diff --git a/rss/file.php b/rss/file.php index c1a01ee65bc15..13d98b6490bbd 100644 --- a/rss/file.php +++ b/rss/file.php @@ -21,6 +21,9 @@ $lifetime = 3600; // Seconds for files to remain in caches - 1 hour + // disable moodle specific debug messages + disable_debugging(); + $relativepath = get_file_argument('file.php'); diff --git a/user/pix.php b/user/pix.php index 838ff8bb0d064..0fdf6411708d8 100644 --- a/user/pix.php +++ b/user/pix.php @@ -8,6 +8,9 @@ require_once('../config.php'); require_once($CFG->libdir.'/filelib.php'); + // disable moodle specific debug messages + disable_debugging(); + $relativepath = get_file_argument('pix.php'); $args = explode('/', trim($relativepath, '/')); diff --git a/user/pixgroup.php b/user/pixgroup.php index 3e793ef10796a..28aeedcbdcb91 100644 --- a/user/pixgroup.php +++ b/user/pixgroup.php @@ -8,6 +8,9 @@ require_once('../config.php'); require_once($CFG->libdir.'/filelib.php'); + // disable moodle specific debug messages + disable_debugging(); + $relativepath = get_file_argument('pixgroup.php'); $args = explode('/', trim($relativepath, '/'));