файл пишет в php для входа в систему, что блокировщик производительности - PullRequest
0 голосов
/ 13 марта 2019

У меня есть фрагмент кода в большинстве моих функций для ведения журналов на производстве, и мы видим файлы журналов по 2 ГБ в день, можно ли писать напрямую в файлы журналов, используя file_put_contents.Мы предполагаем, что этот file_get_contents станет точкой блокировки по мере увеличения размера и трафика.Может кто-нибудь порекомендовать мне правильный способ входа в физические файлы без блокировки php.Любой другой подход приветствуется.

file_put_contents(
            getcwd() . "debug_log.txt",
            "" . print_r($updateFieldsArray, true) . "\n",
            FILE_APPEND | LOCK_EX
        );

Заранее спасибо.

1 Ответ

0 голосов
/ 13 марта 2019

Запись журналов в файлы со временем станет узким местом, если вы продолжите расти (просто потому, что что-либо может стать узким местом), но мы не можем сказать вам, стоит ли беспокоиться о сейчас . Вы можете начать использовать библиотеку журналов, которая позволяет изменять систему хранения с помощью конфигурации, например, monolog.

Эти библиотеки также очень полезны при разработке. Вы можете сделать такие вещи, как включить отладочный вывод, но только для той части приложения, с которой вы работаете.

Вы всегда можете переместить журналы на более быстрый диск или прекратить регистрацию информации, которая вам не нужна. Более сложная проблема с регистрацией в файлах заключается в том, что вы будете делать, когда у вас более одного сервера (подумайте о балансировке нагрузки, высокой доступности). Теперь вы должны прочитать журналы на всех серверах, чтобы найти что-нибудь.

Возможное решение - все серверы отправляют свои журналы на централизованный сервер журналов. Это можно сделать с помощью системного журнала. В качестве альтернативы, каждый сервер может иметь программу, которая читает файлы журналов по мере их создания и сохраняет информацию в центральной базе данных. Это то, что делает logstash.

...