channel = $channel; $this->introspection = $introspection; $this->profiler = $profiler; $this->logUid = Strings::getRandomHex(6); } /** * Simple interpolation of PSR-3 compliant replacements ( variables between '{' and '}' ) * @see https://www.php-fig.org/psr/psr-3/#12-message * * @param string $message * @param array $context * * @return string the interpolated message */ protected function psrInterpolate($message, array $context = array()) { $replace = []; foreach ($context as $key => $value) { // check that the value can be casted to string if (!is_array($value) && (!is_object($value) || method_exists($value, '__toString'))) { $replace['{' . $key . '}'] = $value; } elseif (is_array($value)) { $replace['{' . $key . '}'] = @json_encode($value); } } return strtr($message, $replace); } /** * {@inheritdoc} */ public function emergency($message, array $context = array()) { $stamp1 = microtime(true); $this->addEntry(LogLevel::EMERGENCY, $message, $context); $this->profiler->saveTimestamp($stamp1, 'file', System::callstack()); } /** * {@inheritdoc} */ public function alert($message, array $context = array()) { $stamp1 = microtime(true); $this->addEntry(LogLevel::ALERT, $message, $context); $this->profiler->saveTimestamp($stamp1, 'file', System::callstack()); } /** * {@inheritdoc} */ public function critical($message, array $context = array()) { $stamp1 = microtime(true); $this->addEntry(LogLevel::CRITICAL, $message, $context); $this->profiler->saveTimestamp($stamp1, 'file', System::callstack()); } /** * {@inheritdoc} */ public function error($message, array $context = array()) { $stamp1 = microtime(true); $this->addEntry(LogLevel::ERROR, $message, $context); $this->profiler->saveTimestamp($stamp1, 'file', System::callstack()); } /** * {@inheritdoc} */ public function warning($message, array $context = array()) { $stamp1 = microtime(true); $this->addEntry(LogLevel::WARNING, $message, $context); $this->profiler->saveTimestamp($stamp1, 'file', System::callstack()); } /** * {@inheritdoc} */ public function notice($message, array $context = array()) { $stamp1 = microtime(true); $this->addEntry(LogLevel::NOTICE, $message, $context); $this->profiler->saveTimestamp($stamp1, 'file', System::callstack()); } /** * {@inheritdoc} */ public function info($message, array $context = array()) { $stamp1 = microtime(true); $this->addEntry(LogLevel::INFO, $message, $context); $this->profiler->saveTimestamp($stamp1, 'file', System::callstack()); } /** * {@inheritdoc} */ public function debug($message, array $context = array()) { $stamp1 = microtime(true); $this->addEntry(LogLevel::DEBUG, $message, $context); $this->profiler->saveTimestamp($stamp1, 'file', System::callstack()); } /** * {@inheritdoc} */ public function log($level, $message, array $context = array()) { $stamp1 = microtime(true); $this->addEntry($level, $message, $context); $this->profiler->saveTimestamp($stamp1, 'file', System::callstack()); } }