Made debug log better able to handle write errors without breaking things for no good reason

This commit is contained in:
PMKuipers 2024-05-24 09:30:16 +02:00
parent 3dd1682f5a
commit 09c6e4b029

View file

@ -23,6 +23,7 @@
namespace local_treestudyplan; namespace local_treestudyplan;
use Exception; use Exception;
use JsonException;
defined('MOODLE_INTERNAL') || die(); defined('MOODLE_INTERNAL') || die();
@ -33,15 +34,21 @@ class debug {
* @return any The object * @return any The object
*/ */
public static function &dump(&$object,$filename="/tmp/debug.log") { public static function &dump(&$object,$filename="/tmp/debug.log") {
$f = fopen($filename,"a+");
try { try {
$json = \json_encode($object,JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR ); $f = fopen($filename,"a+");
fwrite($f,$json."\n"); try {
} catch (Exception $x) { $json = \json_encode($object,JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR );
fwrite($f,"Error processing json: ". $x->getMessage()."\n"); fwrite($f,$json."\n");
fwrite($f,"Print_r dump: \n".print_r($object,true)."\n"); } catch (JsonException $x) {
fwrite($f,"Error processing json: ". $x->getMessage()."\n");
fwrite($f,"Print_r dump: \n".print_r($object,true)."\n");
}
} catch (\Exception $x){
} finally {
fclose($f);
} }
fclose($f);
return $object; return $object;
} }
@ -51,10 +58,13 @@ class debug {
* @return any The object * @return any The object
*/ */
public static function &print_r(&$object,$filename="/tmp/debug.log") { public static function &print_r(&$object,$filename="/tmp/debug.log") {
$f = fopen($filename,"a+"); try {
fwrite($f,"Print_r dump: \n".print_r($object,true)."\n"); $f = fopen($filename,"a+");
fclose($f); fwrite($f,"Print_r dump: \n".print_r($object,true)."\n");
return $object; } catch (\Exception $x) {
} finally {
fclose($f);
}
} }
@ -64,8 +74,12 @@ class debug {
* @return any The object * @return any The object
*/ */
public static function write($text,$filename="/tmp/debug.log") { public static function write($text,$filename="/tmp/debug.log") {
$f = fopen($filename,"a+"); try {
fwrite($f,$text."\n"); $f = fopen($filename,"a+");
fclose($f); fwrite($f,$text."\n");
} catch (\Exception $x) {
} finally {
fclose($f);
}
} }
} }