NF_Database_Logger
Class NF_Abstracts_logger.
Defined (1)
The class is defined in the following location(s).
- /includes/Database/Logger.php
- final class NF_Database_Logger extends NF_Abstracts_Logger
- {
- protected $_current = array();
- /**
- * Logs with an arbitrary level.
- *
- * @param mixed $level
- * @param string $message
- * @param array $context
- * @return null
- */
- public function log( $level, $message, array $context = array() )
- {
- $message = $this->interpolate( $message, $context );
- // Create Log Object
- $log = Ninja_Forms()->form()->object()->get();
- $log->update_setting( 'type', 'log' )
- ->update_setting( 'level', $level )
- ->update_setting( 'message', $message );
- foreach ($context as $key => $value) {
- $log->update_setting($key, maybe_serialize($value));
- }
- // Add to Database
- $log->save();
- // Add to Current Property Array
- $this->_current[ $level ][] = $log;
- }
- /**
- * Get current logs for the request lifecycle
- *
- * @param string $level
- * @return array
- */
- public function get_current( $level = '' )
- {
- return ( $level ) ? $this->_current[ $level ] : $this->_current;
- }
- /**
- * Interpolates context values into the message placeholders.
- *
- * @param $message
- * @param array $context
- * @return string
- */
- protected function interpolate( $message, array $context = array() )
- {
- // build a replacement array with braces around the context keys
- $replace = array();
- foreach ($context as $key => $val) {
- if( is_array( $val ) ) continue;
- $replace['{' . $key . '}'] = $val;
- }
- // interpolate replacement values into the message and return
- return strtr($message, $replace);
- }
- }