map = array( \Psr\Log\LogLevel::DEBUG => PEAR_LOG_DEBUG, \Psr\Log\LogLevel::INFO => PEAR_LOG_INFO, \Psr\Log\LogLevel::NOTICE => PEAR_LOG_NOTICE, \Psr\Log\LogLevel::WARNING => PEAR_LOG_WARNING, \Psr\Log\LogLevel::ERROR => PEAR_LOG_ERR, \Psr\Log\LogLevel::CRITICAL => PEAR_LOG_CRIT, \Psr\Log\LogLevel::ALERT => PEAR_LOG_ALERT, \Psr\Log\LogLevel::EMERGENCY => PEAR_LOG_EMERG, ); } /** * Logs with an arbitrary level. * * @param mixed $level * @param string $message * @param array $context */ public function log($level, $message, array $context = array()) { // FIXME: This flattens a $context a bit prematurely. When integrating // with external/CMS logs, we should pass through $context. if (!empty($context)) { if (isset($context['exception'])) { $context['exception'] = CRM_Core_Error::formatTextException($context['exception']); } $message .= "\n" . print_r($context, 1); if (CRM_Utils_System::isDevelopment() && CRM_Utils_Array::value('civi.tag', $context) === 'deprecated') { trigger_error($message, E_USER_DEPRECATED); } } CRM_Core_Error::debug_log_message($message, FALSE, '', $this->map[$level]); } }