Hi, Have you taken a look at Xdebug - http://xdebug.org/ ? From the manual: "Xdebug allows you to log all function calls, including parameters and return values to a file in different formats." Would this do what you need - then your second script could process this file? Regards, Andy On 25 Dec 2009, at 04:42, Rene Veerman wrote: > Hi, > > I would like the opinion of the readers of this list on whether or not they > agree on the usefullness of adding some new functions to the core of PHP. > > Background Info: > > I want more debug-information from my scripts. > And I want to perform lengthy operations in a more robust way. > And I want to monitor such operations in real-time, with points of interest > highlighted, from a webbrowser, using jquery ajax calls. > For instance, when 1000 items are being processed and 10 fail, i want those > listed (with full details) instead of them cancelling the rest of the > operation. > > For each lengthy operation, i want to keep track of: > - $operationName, $contextName > - a full trace, with per function the (timing-)stats, arguments, errors > (possibly including notices), and results. > - the ability to monitor the operation flow from a webbrowser (using ajax > calls) in realtime. > - the ability to store such logs (filtered or not) in a database via > adodb.sf.net, or in a file (json / plaintext), or to email them. > > I'm considering to release the library i'm building for this as LGPL, > including a viewer. > > Problem description: > > To enable a full trace i need to call a function that i create, on entry of > any other function, and on exit of such a function. > Obviously adding (even simple, standard) calls to every function i use is > too cumbersome, and i'd miss all the php built-in functions. > > The simplest solution to this imo, is to add this to the core of PHP: > > $oldTraceHandlerFunctionName = set_trace_handler ( > $handlerFunctionName = 'traceHandler', > $functionList = array ( > 'functionName', > .... > ) OR (default:)null=monitor all functions, > ); > > function traceHandler ( > $file = string;fullpath, > $lineNumber = integer, > $functionName = string, > $eventIsStartOfFunction=boolean, // false = being called at exit of > the function > $arguments = array( > '[&]$argumentVariableName' => anyVariable, > .... > ), > $localVariables = array( > 'localVariableName' => anyVariable, > .... > ) > ) { > //do something > } > > If you have any improvements for this mockup, please post them as reply. > > > While there are the profiling functions of > http://nl2.php.net/manual/en/function.apd-set-pprof-trace.php, > I would nevertheless to propose adding of the new capabilities listed above > here, > for people who don't have enough control over their webserver to install the > requirements of apd-set-pprof-trace. > > Also, i haven't looked into it yet, but converting the apd-set-pprof-trace > data to any other format seems to be difficult to do in realtime because it > writes such data to disk. > Turning such data into your own format in realtime will be prone to slowness > &/ errors. > > I'll also look at using apd-set-pprof-trace, since none of this is likely to > be implemented soon.. > I'll post updates to this thread if i solve that puzzle.