From 09c6e4b0297833144b2b9d099820792602b8e861 Mon Sep 17 00:00:00 2001 From: PMKuipers Date: Fri, 24 May 2024 09:30:16 +0200 Subject: [PATCH] Made debug log better able to handle write errors without breaking things for no good reason --- classes/debug.php | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/classes/debug.php b/classes/debug.php index 957e525..be984e3 100644 --- a/classes/debug.php +++ b/classes/debug.php @@ -23,6 +23,7 @@ namespace local_treestudyplan; use Exception; +use JsonException; defined('MOODLE_INTERNAL') || die(); @@ -33,15 +34,21 @@ class debug { * @return any The object */ public static function &dump(&$object,$filename="/tmp/debug.log") { - $f = fopen($filename,"a+"); + try { - $json = \json_encode($object,JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR ); - fwrite($f,$json."\n"); - } catch (Exception $x) { - fwrite($f,"Error processing json: ". $x->getMessage()."\n"); - fwrite($f,"Print_r dump: \n".print_r($object,true)."\n"); + $f = fopen($filename,"a+"); + try { + $json = \json_encode($object,JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR ); + fwrite($f,$json."\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; } @@ -51,10 +58,13 @@ class debug { * @return any The object */ public static function &print_r(&$object,$filename="/tmp/debug.log") { - $f = fopen($filename,"a+"); - fwrite($f,"Print_r dump: \n".print_r($object,true)."\n"); - fclose($f); - return $object; + try { + $f = fopen($filename,"a+"); + fwrite($f,"Print_r dump: \n".print_r($object,true)."\n"); + } catch (\Exception $x) { + } finally { + fclose($f); + } } @@ -64,8 +74,12 @@ class debug { * @return any The object */ public static function write($text,$filename="/tmp/debug.log") { - $f = fopen($filename,"a+"); - fwrite($f,$text."\n"); - fclose($f); + try { + $f = fopen($filename,"a+"); + fwrite($f,$text."\n"); + } catch (\Exception $x) { + } finally { + fclose($f); + } } } \ No newline at end of file