В конфиге monolog я использую обработчик потока, поэтому он не должен использовать какой-либо буфер, а сразу отправлять логи на tty, и локально он сразу же отправляет логи (опять же, локально я проверял это с помощью prod env), так что все должно быть хорошо, верно? Вот конфигурация Monolog:
Код: Выделить всё
monolog:
handlers:
main:
type: stream
path: "%log_path%"
level: info
channels: ["!event"]
console:
type: console
process_psr_3_messages: false
channels: ["!event", "!doctrine"]
deprecation:
type: stream
path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log"
deprecation_filter:
type: filter
handler: deprecation
max_level: info
channels: ["php"]
Код: Выделить всё
parameters:
log_path: "%env(string:default:default_log_path:LOG_DESTINATION)%"
Также ради теста я добавляю журналы непосредственно в index.php, чтобы опустить фреймворк и монолог, например
Код: Выделить всё
(new Dotenv())->bootEnv(dirname(__DIR__) . '/.env');
$logFile = isset($_SERVER['LOG_DESTINATION']) && $_SERVER['LOG_DESTINATION'] !== ''
? $_SERVER['LOG_DESTINATION']
: 'php://stdout';
try {
file_put_contents(
$logFile,
json_encode(
[
'datetime' => (new DateTimeImmutable())->format('Y-m-d\TH:i:s.uP'),
'message' => 'Request init.',
],
JSON_THROW_ON_ERROR,
) . PHP_EOL,
FILE_APPEND,
);
} catch (Throwable $e) {
file_put_contents(
$logFile,
'{"message" : "Error writing logs. ' . $e->getMessage() . '."}' . PHP_EOL,
FILE_APPEND,
);
}
register_shutdown_function(
static function () use ($requestId, $logFile, $start): void {
$errorArray = error_get_last();
try {
file_put_contents(
$logFile,
json_encode(
[
'datetime' => (new DateTimeImmutable())->format('Y-m-d\TH:i:s.uP'),
'message' => 'Request finished.',
'last_error' => is_array($errorArray) ? $errorArray : [],
'execution_time_ms' => round((microtime(true) - $start) * 1000),
],
JSON_THROW_ON_ERROR,
) . PHP_EOL,
FILE_APPEND,
);
} catch (Throwable $e) {
file_put_contents(
$logFile,
'{"message" : "Error writing logs. ' . $e->getMessage() . '."}' . PHP_EOL,
FILE_APPEND,
);
}
},
);
Подробнее здесь: https://stackoverflow.com/questions/786 ... ase-of-504