Log::log()
\nn\t3::Log()->log($extName = 'nnhelpers', $message = NULL, $data = [], $severity = 'info');
Writes an entry to the sys_log table.
The severity level can be specified, e.g. info, warning or error
\nn\t3::Log()->log( 'extname', 'Alles übel.', ['nix'=>'gut'], 'error' );
\nn\t3::Log()->log( 'extname', 'Alles schön.' );
Copied!
| @return mixed
Source Code
public function log( $extName = 'nnhelpers', $message = null, $data = [], $severity = 'info' ) {
if (is_array($message)) $message = join(" · ", $message);
$severity = strtoupper( $severity );
$logLevel = constant( "\TYPO3\CMS\Core\Log\LogLevel::$severity" );
$type = $severity == 'ERROR' ? 5 : 4; // 4 = type: EXTENSION
// Die Core-Methode ist schön, allerdings nur, wenn man wirklich diese Flexibiltät braucht.
// Leider sind die Log-Einträge mit dem Core DatabaseWriter nicht im Backend sichtbar.
// Wir wollen nur einen einfach Eintrag in sys_log haben und nutzen einen simplen INSERT
/*
$logger = GeneralUtility::makeInstance( LogManager::class )->getLogger( __CLASS__ );
$logger->log( $logLevel, $message, $params );
*/
\nn\t3::Db()->insert('sys_log', [
'details' => "[{$extName}] {$message} " . ($data ? print_r( $data, true ) : ''),
'action' => $data['action'] ?? 0,
'level' => $logLevel,
'type' => $type,
'log_data' => serialize($data),
'error' => $severity == 'ERROR' ? 1 : 0,
'tstamp' => time(),
'IP' => $_SERVER['REMOTE_ADDR'] ?? '',
]);
}
Copied!