feat: add support for structured logging with the frankenphp_log() PHP function (#1979)

As discussed in https://github.com/php/frankenphp/discussions/1961,
there is no real way to pass a severity/level to any log handler offered
by PHP that would make it to the FrankenPHP layer. This new function
allows applications embedding FrankenPHP to integrate PHP logging into
the application itself, thus offering a more streamlined experience.

---------

Co-authored-by: Quentin Burgess <qutn.burgess@gmail.com>
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
This commit is contained in:
Raphael Coeffic
2025-12-15 16:10:35 +01:00
committed by GitHub
parent 7fca07ed67
commit 91c553f3d9
16 changed files with 211 additions and 67 deletions

19
testdata/log-frankenphp_log.php vendored Normal file
View File

@@ -0,0 +1,19 @@
<?php
require_once __DIR__.'/_executor.php';
return function () {
frankenphp_log("some debug message {$_GET['i']}", FRANKENPHP_LOG_LEVEL_DEBUG, [
"key int" => 1,
]);
frankenphp_log("some info message {$_GET['i']}", FRANKENPHP_LOG_LEVEL_INFO, [
"key string" => "string",
]);
frankenphp_log("some warn message {$_GET['i']}", FRANKENPHP_LOG_LEVEL_WARN);
frankenphp_log("some error message {$_GET['i']}", FRANKENPHP_LOG_LEVEL_ERROR, [
"err" => ["a", "v"],
]);
};