PHP не записывает логи в случае 504Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 PHP не записывает логи в случае 504

Сообщение Anonymous »

У меня есть приложение Symfony, и я установил request_terminate_timeout = 60 таким же, как тайм-аут Nginx, и послесловия для 504 запросов. Я не вижу производственные журналы, но если я использую prod env локально, я могу видеть журналы. Логи пишутся на php://stdout
В конфиге 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)%"
А назначение журнала равно php://stdout
Также ради теста я добавляю журналы непосредственно в 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,
);
}
},
);
опять же, я не вижу этих журналов в рабочей среде, но локально я вижу все журналы, включая это новое, добавленное в index.php. Может быть, есть конфиг на уровне PHP, который управляет каким-то буфером или чем-то в этом роде?? Почему локально с помощью prod env я вижу эти журналы, но в рабочей среде (которая на самом деле использует тот же образ докера) я вижу только журнал Nginx около 504, но ничего со стороны приложения? Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/786 ... ase-of-504
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • PHP не записывает логи в случае 504
    Anonymous » » в форуме Php
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Uuid, я получаю журналы, но не для каждого потока. попадаем только в основной поток. Придется добавить логи Splunk
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Uuid, я получаю журналы, но не для каждого потока. попадаем только в основной поток. Придется добавить логи Splunk
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Логи передаются некорректно
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Показывать логи на консоли при запуске тестов
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»