Record_log improve record exception and previous ones

This commit is contained in:
sparkyx 2025-02-21 01:14:25 +01:00
parent fde7d62ac9
commit 47adc3b0c1
3 changed files with 83 additions and 20 deletions

View file

@ -65,19 +65,22 @@ if (!file_exists('authorized_debug'))
} }
define('ALLOWED', 1); define('ALLOWED', 1);
load_all_script(); load_all_script();
// To enable assert , set "zend.assertions" in the php.ini file // To enable assert , set "zend.assertions" in the php.ini file
ini_set("assert.active",1); // deprecated PHP8.3
assert_options(ASSERT_ACTIVE, 1); //ini_set("assert.active",1);
assert_options(ASSERT_WARNING, 1); //assert_options(ASSERT_ACTIVE, 1);
//assert_options(ASSERT_WARNING, 1);
//removed in PHP8 assert_options(ASSERT_QUIET_EVAL, 1); //removed in PHP8 assert_options(ASSERT_QUIET_EVAL, 1);
function my_assert_handler($file, $line, $code) //
{ //function my_assert_handler($file, $line, $code)
echo "<hr>Assert Failed : //{
File '$file'<br /> // echo "<hr>Assert Failed :
Line '$line'<br /> // File '$file'<br />
Code '$code'<br /><hr />"; // Line '$line'<br />
} // Code '$code'<br /><hr />";
assert_options(ASSERT_CALLBACK, 'my_assert_handler'); //}
//assert_options(ASSERT_CALLBACK, 'my_assert_handler');
/******************************************************************************************************************/ /******************************************************************************************************************/
/* Utilities /* Utilities
/******************************************************************************************************************/ /******************************************************************************************************************/

View file

@ -1349,9 +1349,15 @@ function record_log($p_message)
{ {
if ( gettype ($p_message) == "object" && method_exists($p_message,"getTraceAsString") == 1) { if ( gettype ($p_message) == "object" && method_exists($p_message,"getTraceAsString") == 1) {
$exc=$p_message;
error_log("noalyss exception ".$p_message->getMessage(),0); do {
error_log("noalyss exception".$p_message->getTraceAsString(),0); error_log("noalyss exception message [".$exc->getMessage()."]",0);
error_log("noalyss exception code [".$exc->getCode()."]",0);
error_log("noalyss exception trace ".$exc->getTraceAsString(),0);
error_log("------ ",0);
$exc=$exc->getPrevious();
if ($exc != null )fwrite ($handle_log,"*********************** Previous *********************** \n");
} while ($exc != null);
} else { } else {
error_log("noalyss".var_export($p_message,true),0); error_log("noalyss".var_export($p_message,true),0);
@ -1376,11 +1382,17 @@ function record_log($p_message)
fwrite($handle_log,"_POST [".var_export($_POST,true)."]"); fwrite($handle_log,"_POST [".var_export($_POST,true)."]");
fwrite ($handle_log,"\n"); fwrite ($handle_log,"\n");
if ( gettype ($p_message) == "object" && method_exists($p_message,"getTraceAsString") == 1) { if ( gettype ($p_message) == "object" && method_exists($p_message,"getTraceAsString") == 1) {
$exc=$p_message;
fwrite($handle_log,"noalyss exception ".$p_message->getMessage()); do {
fwrite($handle_log,"noalyss exception message [".$exc->getMessage()."]");
fwrite ($handle_log,"\n"); fwrite ($handle_log,"\n");
fwrite($handle_log,"noalyss exception".$p_message->getTraceAsString()); fwrite($handle_log,"noalyss exception code [".$exc->getCode()."]");
fwrite ($handle_log,"\n"); fwrite ($handle_log,"\n");
fwrite($handle_log,"noalyss exception trace \n".$exc->getTraceAsString());
fwrite ($handle_log,"\n");
$exc=$exc->getPrevious();
if ($exc != null )fwrite ($handle_log,"*********************** Previous *********************** \n");
} while ($exc != null);
} else { } else {
fwrite($handle_log,"noalyss".var_export($p_message,true)); fwrite($handle_log,"noalyss".var_export($p_message,true));
fwrite ($handle_log,"\n"); fwrite ($handle_log,"\n");
@ -1388,7 +1400,7 @@ function record_log($p_message)
} }
fwrite ($handle_log,str_repeat("=", 80)."\n"); fwrite ($handle_log,str_repeat("=", 80)."\n");
fclose($handle_log);
} }

48
scenario/record_log.php Normal file
View file

@ -0,0 +1,48 @@
<?php
//@description: Test record_log function for recording exception AC_COMMON.PHP
/*
* This file is part of NOALYSS.
*
* NOALYSS is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* NOALYSS is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with NOALYSS; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// Copyright Author Dany De Bontridder danydb@aevalys.eu 21/02/25
/*!
* \file
* \brief testing functions from ac_common
*/
function y()
{
try {
throw new Exception ("FUNCTION Y",1000);
} catch (\Exception $e) {
throw new Exception($e);
}
}
function x()
{
try {
y();
}catch(Exception $e) {
throw new Exception("from X",2000,$e);
}
}
try {
x();
} catch (\Exception $e) {
record_log($e);
}