Bugs and errors are inevitable. No system can be immune but it's how we deal with them that makes a huge difference. Log files are usually the first thing to be examine when someone reports an error. Trouble is log files are hard to look through. There can be millions of lines, most of which might have nothing to do with the error reported. Furthermore when you do find the relevant part the log output may not be detailed enough.
Most logging tools have a debug setting to produce more verbose output. However this is not often in a production server as it can impede performance and will increase you log size exponentially.
This is where we can setup a dedicated server for debugging. The architecture for this is described in this NGINX blog post. It makes use of NGINX load balancing and consist of setting up an upstream server, where any 5xx errors are sent to. This debug server will have the most verbose level of logging enable and since it only receives requests that results in errors, we won't have to look through as many log lines as with a production server.
There is a sample configuration shown on the blog post, and of course, you can learn all about load balancing in our NGINX Fundamentals and NGINX Advanced training courses.
ServiceRocket helps companies and customers create value for software. We believe the first step to getting more value out of software is proper training, building customer education for today's leading technologies and helping over 100,000 students do more with their software. Our SaaS customer training software, Learndot, is the only LMS built for software training. ServiceRocket is based in Palo Alto, CA, and hiring in four global offices.