/** * @param mixed $level * @param string $message * @param array $context * * @return null */ public function log($level, $message, array $context = array()) { if (!isset($context['hostname'])) { $context['hostname'] = CRM_Utils_System::ipAddress(); } $rec = new CRM_Core_DAO_SystemLog(); $separateFields = array('contact_id', 'hostname'); foreach ($separateFields as $separateField) { if (isset($context[$separateField])) { $rec->{$separateField} = $context[$separateField]; unset($context[$separateField]); } } $rec->level = $level; $rec->message = $message; $rec->context = json_encode($context); $rec->save(); }
/** * Returns the list of fields that can be exported * * @param bool $prefix * * @return array */ static function &export($prefix = false) { if (!self::$_export) { self::$_export = array(); $fields = self::fields(); foreach ($fields as $name => $field) { if (CRM_Utils_Array::value('export', $field)) { if ($prefix) { self::$_export['system_log'] =& $fields[$name]; } else { self::$_export[$name] =& $fields[$name]; } } } } return self::$_export; }