*/ class DebugWriter { /** * When the feature is enabled with: plugin.tx_meilisearch.logging.debugOutput the log writer uses the extbase * debug functionality in the frontend, or the console in the backend to display the devlog messages. * * @param int|string $level Log level. Value according to \TYPO3\CMS\Core\Log\LogLevel. Alternatively accepts a string. * @param string $message Log message. * @param array $data Additional data to log */ public function write($level, $message, $data = []) { $debugAllowedForIp = $this->getIsAllowedByDevIPMask(); if (!$debugAllowedForIp) { return; } $isDebugOutputEnabled = $this->getIsDebugOutputEnabled(); if (!$isDebugOutputEnabled) { return; } $this->writeDebugMessage($level, $message, $data); } /** * @return bool */ protected function getIsAllowedByDevIPMask() { return GeneralUtility::cmpIP(GeneralUtility::getIndpEnv('REMOTE_ADDR'), $GLOBALS['TYPO3_CONF_VARS']['SYS']['devIPmask']); } /** * Check if Logging via debugOutput has been configured * * @return bool */ protected function getIsDebugOutputEnabled() { return Util::getMeilisearchConfiguration()->getLoggingDebugOutput(); } /** * @param int|string $level Log level. Value according to \TYPO3\CMS\Core\Log\LogLevel. Alternatively accepts a string. * @param string $message Log message. * @param array $data Additional data to log */ protected function writeDebugMessage($level, $message, $data) { $parameters = ['extKey' => 'meilisearch', 'msg' => $message, 'level' => $level, 'data' => $data]; $message = isset($parameters['msg']) ? $parameters['msg'] : ''; if (TYPO3_MODE === 'BE') { DebugUtility::debug($parameters, $parameters['extKey'], 'DevLog ext:meilisearch: ' . $message); } else { echo $message . ':
'; DebuggerUtility::var_dump($parameters); } } }