On Wed, Jan 28, 2015 at 2:11 PM, Thomas Bley <ma...@thomasbley.de> wrote: > There are some workarounds with register_shutdown_function to extend E_ERROR > messages, but I think that's quite dirty in a system with many parallel > requests. > Here is an example: > > <?php > ini_set('error_reporting', E_ALL); > ini_set('display_errors', 0); > ini_set('log_errors', 1); > ini_set('error_log', 'php_error.log'); > ini_set('date.timezone', 'Europe/Berlin'); > ini_set('memory_limit', '16M'); > > $_SERVER['HTTP_HOST'] = 'mywebsite.com'; > $_SERVER['REQUEST_URI'] = '/custom/foobar'; > $_REQUEST = array('action' => 'edit'); > > function check_for_fatal() { > $error = error_get_last(); > if ($error['type'] == E_ERROR) { > $errstr = ''; > if (!empty($_SERVER['REQUEST_URI'])) { > $errstr .= ' Request-Uri: '.$_SERVER['REQUEST_URI'].PHP_EOL; > } > $errstr .= ' Request-Params: '.json_encode($_REQUEST); > file_put_contents('php_error.log', $errstr. PHP_EOL, FILE_APPEND); > } > } > > register_shutdown_function('check_for_fatal'); > > $str = str_repeat('##########', 2*1024*1024); > > gives: > > [28-Jan-2015 07:00:53 Europe/Berlin] PHP Fatal error: Allowed memory size of > 16777216 bytes exhausted (tried to allocate 20971521 bytes) in test.php on > line 27 > Request-Uri: /custom/foobar > Request-Params: {"action":"edit"} actually, this should already be in access.log(the last 500 error one)...... I don't see why you need it in error log....
thanks > > > Regards > Thomas > > > > Xinchen Hui wrote on 27.01.2015 13:26: > >> Hey: >> >> On Tue, Jan 27, 2015 at 11:08 AM, Yasuo Ohgaki <yohg...@ohgaki.net> wrote: >>> Hi Thomas, >>> >>> On Tue, Jan 27, 2015 at 11:45 AM, Thomas Bley <ma...@thomasbley.de> wrote: >>> >>>> Here is the rfc: >>>> >>>> https://wiki.php.net/rfc/error_handler_callback_parameters_passed_by_reference >>>> >>>> Thanks to reeze for coding and putting it on the wiki. >>>> >>> >>> It looks good to me. >>> >>> Future Scope >>> set_error_handler() callback might be able to handle E_ERROR to be able to >>> append additional information to memory_limit exhaustions (or others). >>> >>> I really want to catch E_RROR by user defined error handler. The only >>> reason why this was disabled is abuse of error handler. We may document >>> abuse of error handler with E_ERROR may result in undefined behavior >>> including memory leak/crash and allow it. >> I feel it's kindof wrong direction. >> >> if you want custom logs, maybe you should use custom logger. >> >> thanks >>> >>> Regards, >>> >>> -- >>> Yasuo Ohgaki >>> yohg...@ohgaki.net >> >> >> >> -- >> Xinchen Hui >> @Laruence >> http://www.laruence.com/ >> > -- Xinchen Hui @Laruence http://www.laruence.com/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php