Welcome Guest, Not a member yet? Register   Sign In
Limiting Stack Trace Error on log file for certain scenarios
#1

Hello,

I have a PHP file runs for hours (like cronjob), sometimes it logs exceptions (its handled but logged to log file) due to SQL deadlocks.

But I couldn't manage to limit string of error log for stack trace that dumped to log file.



To clarify it more here is a sample workflow:





PHP Code:
<?php
function inserter($counter=0){
 while (true) {
try:
  do some SQL inserts for 1000 times
catch:
log_message('error','excepton 502:' sizelimit($e->getMessage().$trace,1000).'\n');
 }
 $counter++;
 if($counter<1000)
   inserter($counter)
}
?>


as you can see above this is a long running script and it call itselfs, when something goes wrong (its accepted) it logs an error message but my problem is not with my error message. Also it logs a full stack trace by CodeIgniter framework and I couldnt find a way to limit its log. Because while this script is running multiple times, it creates a huge stack trace like:


---------------------------------
ERROR - 2024-04-21 22:24:07 --> ErrorException: pg_query(): Query failed: ERROR:  canceling statement due to statement timeout
CONTEXT:  while scanning relation "public.datas_meta" in /codeigniterphp/appsrc/system/Database/Postgre/Connection.php:187
Stack trace:
#0 [internal function]: CodeIgniter\Debug\Exceptions->errorHandler(2, 'pg_query(): Que...', '/codeigniterphp/appsrc/sy...', 187)
#1 /codeigniterphp/appsrc/system/Database/Postgre/Connection.php(187): pg_query(Object(PgSql\Connection), ' VACUUM (VERBOS...')
#2 /codeigniterphp/appsrc/system/Database/BaseConnection.php(693): CodeIgniter\Database\Postgre\Connection->execute(' VACUUM (VERBOS...')
#3 /codeigniterphp/appsrc/system/Database/BaseConnection.php(607): CodeIgniter\Database\BaseConnection->simpleQuery(' VACUUM (VERBOS...')
#4 /codeigniterphp/appsrc/app/Controllers/MyController.php(1309): CodeIgniter\Database\BaseConnection->query(' VACUUM (VERBOS...')
#5 /codeigniterphp/appsrc/app/Controllers/MyController.php(164): App\Controllers\MyController->pg_vacuum_tables(0, 1713737945.7492)
#6 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#7 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#8 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#9 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#10 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#11 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#12 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#13 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#14 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#15 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#16 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#17 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#18 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#19 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#20 /codeigniterphp/appsrc/app/Controllers/MyController.php(271): App\Controllers\MyController->inserter()
#21 /codeigniterphp/appsrc/app/Controllers/MyController .....
....
...
#1000  /codeigniterphp/appsrc/app/Controllers/MyController


---------------------------------

I want to limit total size of dump for a single log message, is there a way to do it or just I have to change play with CI's source code? I didnt want to do it on CI's source code at first intention due to I am happy to migrate new version of it easily, otherwise it increases my anxiety Smile)

happy to get your ideas.
Reply


Messages In This Thread
Limiting Stack Trace Error on log file for certain scenarios - by byrallier - 04-21-2024, 04:41 PM



Theme © iAndrew 2016 - Forum software by © MyBB