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

Reply via email to