Description

Hi there,

I started this thread on GitHub but Christoph (cmb69) suggested this
is the better place to discuss such a thing.

(initial post: https://github.com/php/php-src/issues/9745)


Basically, we have quite a high-loaded environment and we really want
to see timestamps
 containing milli-/microseconds in our logs. It is easy to do for our
custom logger
but error messages from the PHP itself narrowed down to seconds (I'm
talking about method php_log_err_with_severity()

Link: 
https://github.com/php/php-src/blob/master/main/main.c#L799:~:text=php_log_err_with_severity

In our repository, we have a hacky patch that adds microsecs in this
log as well.
Unfortunately, such a solution is not really a good approach to
looking into the future.

I wanted to adopt our patch to share it with the community and
potentially merge it into upstream
but stumbled upon the fact that it isn't really straightforward to
format a date/time with microseconds
using the standard API available for an extension.

Basically, I found a couple of options:

(1) We can instantiate a DateTime object and call DateTime::format().
     It looks working but it makes the logging function way more complicated
     and potentially heavy

(2) date_format works directly with timelib_time and can properly
handle microsecs
     but it is hidden inside ext/date/php_date.c, Not really sure if
it's a good idea to make it public

(3) In theory, it is possible to add one more parameter to php_format_date
     but it'll break all the existing code. The change of signature
doesn't look like a good option.
     However, we might be able to introduce another function if we
want to encapsulate work
     with timelib_time within the ext/date.

(4) Derrek Rethans suggested introducing a new function (e.g.
php_format_date_ex) that
     takes care of usecs (see the thread on Github)

Looking into the future, probably we would like to have this format
configurable, if so it looks easy to do but still I
can't see an easy way to handle the microseconds issue.

Could you please help me to find the right way and share your thoughts
about this topic (maybe there are
strong objections against such a change)?

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to