MDL-80554 task: Force debugdisplay on for task logging

This commit is contained in:
Brendan Heywood 2024-01-09 14:23:35 +11:00
parent 9587029a46
commit e5741dba1a

View File

@ -382,6 +382,8 @@ class cron {
public static function run_inner_scheduled_task(\core\task\task_base $task) {
global $CFG, $DB;
$debuglevel = $CFG->debug;
$debugdisplay = $CFG->debugdisplay;
$CFG->debugdisplay = 1;
\core\task\manager::scheduled_task_starting($task);
\core\task\logmanager::start_logging($task);
@ -403,7 +405,7 @@ class cron {
// Temporarily increase debug level if task has failed and debugging isn't already at maximum.
if ($debuglevel !== DEBUG_DEVELOPER && $faildelay = $task->get_fail_delay()) {
mtrace('Debugging increased temporarily due to faildelay of ' . $faildelay);
set_debugging(DEBUG_DEVELOPER);
set_debugging(DEBUG_DEVELOPER, 1);
}
$task->execute();
if ($DB->is_transaction_started()) {
@ -439,6 +441,10 @@ class cron {
if ($CFG->debug !== $debuglevel) {
set_debugging($debuglevel);
}
// Reset debugdisplay back.
$CFG->debugdisplay = $debugdisplay;
// Reset back to the standard admin user.
self::setup_user();
self::set_process_title('Waiting for next scheduled task');
@ -455,6 +461,8 @@ class cron {
public static function run_inner_adhoc_task(\core\task\adhoc_task $task) {
global $CFG, $DB;
$debuglevel = $CFG->debug;
$debugdisplay = $CFG->debugdisplay;
$CFG->debugdisplay = 1;
\core\task\manager::adhoc_task_starting($task);
\core\task\logmanager::start_logging($task);
@ -506,7 +514,7 @@ class cron {
// Temporarily increase debug level if task has failed and debugging isn't already at maximum.
if ($debuglevel !== DEBUG_DEVELOPER && $faildelay = $task->get_fail_delay()) {
mtrace('Debugging increased temporarily due to faildelay of ' . $faildelay);
set_debugging(DEBUG_DEVELOPER);
set_debugging(DEBUG_DEVELOPER, 1);
}
$task->execute();
if ($DB->is_transaction_started()) {
@ -542,6 +550,10 @@ class cron {
if ($CFG->debug !== $debuglevel) {
set_debugging($debuglevel);
}
// Reset debugdisplay back.
$CFG->debugdisplay = $debugdisplay;
// Reset back to the standard admin user.
self::setup_user();
self::prepare_core_renderer(true);