Commit 6e5ad5ee authored by totten's avatar totten

CRM-11743 - Civi::log() - Add short hand for logging

parent 92a8de72
......@@ -571,11 +571,11 @@ class CRM_Core_Error extends PEAR_ErrorStack {
*
*
*/
public static function debug_log_message($message, $out = FALSE, $comp = '') {
public static function debug_log_message($message, $out = FALSE, $comp = '', $priority = NULL) {
$config = CRM_Core_Config::singleton();
$file_log = self::createDebugLogger($comp);
$file_log->log("$message\n");
$file_log->log("$message\n", $priority);
$str = '<p/><code>' . htmlspecialchars($message) . '</code>';
if ($out && CRM_Core_Permission::check('view debug output')) {
......
<?php
/*
+--------------------------------------------------------------------+
| CiviCRM version 4.7 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2015 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
| CiviCRM is free software; you can copy, modify, and distribute it |
| under the terms of the GNU Affero General Public License |
| Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
| |
| CiviCRM is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| See the GNU Affero General Public License for more details. |
| |
| You should have received a copy of the GNU Affero General Public |
| License and the CiviCRM Licensing Exception along |
| with this program; if not, contact CiviCRM LLC |
| at info[AT]civicrm[DOT]org. If you have questions about the |
| GNU Affero General Public License or the licensing of CiviCRM, |
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*/
/**
* Class CRM_Core_Error_Log
*
* A PSR-3 wrapper for CRM_Core_Error.
*/
class CRM_Core_Error_Log extends \Psr\Log\AbstractLogger {
public function __construct() {
$this->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);
}
CRM_Core_Error::debug_log_message($message, FALSE, '', $this->map[$level]);
}
}
......@@ -54,6 +54,13 @@ class Civi {
return Civi\Core\Container::singleton();
}
/**
* @return \Psr\Log\LoggerInterface
*/
public static function log() {
return Civi\Core\Container::singleton()->get('psr_log');
}
/**
* Fetch a service from the container.
*
......
......@@ -103,6 +103,8 @@ class Container {
))
->setFactoryClass('CRM_Cxn_BAO_Cxn')->setFactoryMethod('createRegistrationClient');
$container->setDefinition('psr_log', new Definition('CRM_Core_Error_Log', array()));
$container->setDefinition('cache.settings', new Definition(
'CRM_Utils_Cache_SqlGroup',
array(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment