Is it recommended to ship logs directly from a PHP app to ElasticSearch? Or is it always better to store to file and use filebeat to ship the logs? I'm familiar with C# and Serilog implementation sending directly to ES and we've never had an issue with it, but was wondering if the same could be done with a PHP app using Monolog without performance being severely impacted. I'm assuming Serilog is able to asynchronously send the logs, I'm not sure if the Monolog implementation on PHP is able to do that or if it would only be OK to ship directly as long as they're infrequent error logs but info/debug logging would cripple performance. Anybody have any experience doing this? For additional background, we'd be using AWS OpenSearch and the PHP app would also be running at AWS in ECS/Fargate containers, so it would be inside the same network.
personally I would recommend logging to a file and then shipping, no matter the end datastore you end up chosing
the reason is that otherwise you need to handle a tonne of logic in your client - load balancing/failover, retries, error handling, back pressure - and while another client library for that datastore may abstract some of this out, it's probably not the best place for it
the biggest issue there would be back pressure. what happens if something happens that delays, or stops, logging to your datastore? do you keep the log in memory and retry later? do you block till the log is stored? how do you manage those aspects
if you log to a file (or even stdout for containers) you have a pretty clear delineation point for your code. you will likely have a backup of the log incase you ever need to check it, and you can use task specific tooling to ship your logs
Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.
Find the answer in similar questions on our website.
Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.
PHP (from the English Hypertext Preprocessor - hypertext preprocessor) is a scripting programming language for developing web applications. Supported by most hosting providers, it is one of the most popular tools for creating dynamic websites.
The PHP scripting language has gained wide popularity due to its processing speed, simplicity, cross-platform, functionality and distribution of source codes under its own license.
https://www.php.net/
Welcome to the Q&A site for web developers. Here you can ask a question about the problem you are facing and get answers from other experts. We have created a user-friendly interface so that you can quickly and free of charge ask a question about a web programming problem. We also invite other experts to join our community and help other members who ask questions. In addition, you can use our search for questions with a solution.
Ask about the real problem you are facing. Describe in detail what you are doing and what you want to achieve.
Our goal is to create a strong community in which everyone will support each other. If you find a question and know the answer to it, help others with your knowledge.