get('boot.state')->complete) { return $this; } } catch (\LogicException $e) { // LogicException will be thrown if the container isn't available yet. return $this; } $data = ''; $context = $record->getData(); if (!empty($context)) { // Fold an exception into the message, and string-ify it into context so it can be jsonified. if (isset($context['exception']) && $context['exception'] instanceof \Throwable) { $context['exception'] = (string)$context['exception']; } $data = json_encode($context); } $fieldValues = [ 'request_id' => $record->getRequestId(), 'time_micro' => $record->getCreated(), 'component' => $record->getComponent(), 'level' => LogLevel::normalizeLevel($record->getLevel()), 'message' => $record->getMessage(), 'data' => $data, ]; // sys_log uses tstamp for garbage collection via TableGarbageCollectionTask. // Without it, tstamp defaults to 0 (1970-01-01), causing immediate deletion (see #109290). $fieldValues['tstamp'] = (int)$record->getCreated(); GeneralUtility::makeInstance(ConnectionPool::class) ->getConnectionForTable('sys_log') ->insert('sys_log', $fieldValues); return $this; } }