<?php require_once( dirname(__FILE__).'/raven/lib/Raven/Client.php' ); require_once( dirname(__FILE__).'/raven/lib/Raven/Compat.php' ); require_once( dirname(__FILE__).'/raven/lib/Raven/ErrorHandler.php' ); require_once( dirname(__FILE__).'/raven/lib/Raven/Stacktrace.php' ); class WP_Raven_Client extends Raven_Client { function __construct() { $this->settings = get_option( 'sentry-settings' ); if ( !isset( $this->settings['dsn'] )) return; if ( $this->settings['dsn'] == '' ) return; parent::__construct( $this->settings['dsn'] ); $this->setErrorReportingLevel( $this->settings['reporting_level'] ); $this->setHandlers(); } function setHandlers() { $error_handler = new Raven_ErrorHandler( $this ); set_error_handler( array( $error_handler, 'handleError' )); set_exception_handler( array( $error_handler, 'handleException' )); } function setErrorReportingLevel( $level = 'E_WARNING' ) { $errorLevelMap = array( 'E_NONE' => 0, 'E_WARNING' => 2, 'E_NOTICE' => 8, 'E_USER_ERROR' => 256, 'E_USER_WARNING' => 512, 'E_USER_NOTICE' => 1024, 'E_RECOVERABLE_ERROR' => 4096, 'E_ALL' => 8191 ); if ( array_key_exists( $level, $errorLevelMap ) ) $this->_max_error_reporting_level = $errorLevelMap[ $level ]; } } ?>