Debugging and profiling the Ensembl website

$SiteDefs::ENSEMBL_DEBUG_FLAGS

In your plugins you can set the value of the EnsEMBL debug flags so that you can control what messages appear in the error logs.

  ## Turn on Perl profiling output.
  $SiteDefs::ENSEMBL_DEBUG_FLAGS |= $SiteDefs::ENSEMBL_PERL_PROFILER;
  ## Turn off Long process warnings
  $SiteDefs::ENSEMBL_DEBUG_FLAGS &= ~$SiteDefs::ENSEMBL_DEBUG_LONG_PROCESS;

A full list of flags are:

$SiteDefs::ENSEMBL_DEBUG_JAVASCRIPT_DEBUG
Include a Debug div in the webpage in which errors warnings and timings are logged.
$SiteDefs::ENSEMBL_DEBUG_MAGIC_MESSAGES
EnsEMBL::Web::Magic module displays a textual description of each request if this flag is set.
$SiteDefs::ENSEMBL_DEBUG_REFERER
For debugging AJAX etc - print out the parsed web-request
$SiteDefs::ENSEMBL_DEBUG_TREE_DUMPS
Textual dump of the image configuration trees.
$SiteDefs::ENSEMBL_DEBUG_TIMESTAMPED_LOGS
If set log files are stamped with the time the server is started.
$SiteDefs::ENSEMBL_DEBUG_PERL_PROFILER
At various points in the code there are in built profiling statements - set this flag to dump them to the logs at the end of the request.
$SiteDefs::ENSEMBL_DEBUG_LONG_PROCESS
Display information about requests that last more than a certain number of seconds.
$SiteDefs::ENSEMBL_DEBUG_HANDLER_ERRORS
Include some detailed error messages while the server is routing the request.
$SiteDefs::ENSEMBL_DEBUG_SD_AUTOLOADER
Various shouts in the EnsEMBL::Web::SpeciesDefs AUTOLOAD function.
$SiteDefs::ENSEMBL_DEBUG_DRAWING_CODE
Informational messages from the drawing code.
$SiteDefs::ENSEMBL_DEBUG_GENERAL_ERRORS
Show some general error messages

Profiling the code - EnsEMBL::Web::Timer