The approach we use has been refined over many years working on large scale web applications.
Broadly speaking, these are the tools that we use:
Drupal stores a lot of useful information and often times the watchdog will reveal the exact cause of any problems you might be experiencing.
Apache Error Log
Drupal attempts to catch errors so that it can write them to the watchdog log. However, sometimes the errors don't get as far as Drupal and instead get written directly to the webserver error log. Monitoring the error log during page execution can uncover an awful lot of information to help pin point a problem quickly.
MySQL Query Log
Where the problems are data related it can be useful to see exactly what queries are being submitted to the database. The MySQL query log can be temporarily enabled in order to reveal the actual queries used so that these can be examined to pinpoint causes of data inaccuracies.
Frequently your website will be producing unexpected behaviour yet there may be nothing showing as a problem in any of the error logs. This can indicate that you have a logic error somewhere in your code. We use an interactive debugging session, facilitated by XDebug, in order to examine what the code is doing in real time as a page is executing. This is the gold standard in terms of debugging tools.
Git is a VCS (version control system). It is used to track changes to your code base through time making it possible to review every code change that has been made. This history of your code base provides an opportunity to audit the codebase for likely causes of newly identified, incorrect behaviour.
Chrome Developer Tools
This allows us to examine the code that runs in the browser to find errors. It also gives us the opportunity to see what data the browser is sending and receiving on page requests and what errors the browser is reporting.
Experience & Instinct
Having played this game for a long time we have seen a lot of issues and fixed a lot of issues. These days we have a pretty good knack of knowing where to start looking for problems to solve them as quickly as possible.
Review our pricing or fill in the form on the right to get started.