Core API
3.7. Using system log
3.7.1. The log table (sys_log)
Writing to the system log is done using the backend user object:
$this->BE_USER->writelog($type,$action,$error,$details_nr,$details,$data,$table,$recuid,$recpid,$event_pid,$NEWid);
Here are description of the arguments to this function call:
|
Field |
Type |
Var |
Description |
|---|---|---|---|
|
type |
tinyint |
$type |
Value telling which module in TYPO3 set the log entry. The type values are paired with an action-integer which is telling in more detail what the event was. Here type and action values are arranged hierarchically (type on first level, action on second level):
|
|
action |
tinyint |
$action |
See "type" above
When not available, use value "0" |
|
error |
tinyint |
$error |
Error level:
|
|
details_nr |
tinyint |
$details_nr |
Number of "detail" message. This number should be unique for the combination of type/action
-1 is a temporary detail number you can use while developing and error messages are not fixed yet. 0 is a value that means the message is not supposed to be translated >=1 means the message is fixed and ready for translation. |
|
details |
tinytext |
$details |
The log message text (in english). By identification through type/action/details_nr this can be translated through the localization system. If you insert "%s" markers in the details message and set $data to an array the first 5 entries (keys 0-4) from $data will substitute the markers sequentially (using sprintf) |
|
log_data |
tinyblob |
$data |
Data that follows the log entry. Can be an array. See "details" for more info. |
|
tablename |
varchar(40) |
$table |
Table name. Special field used by tce_main.php. |
|
recuid |
int |
$recuid |
Record UID. Special field used by tce_main.php. |
|
recpid |
int |
$recpid |
Record PID. Special field used by tce_main.php. [OBSOLETE; not used anymore.] |
|
event_pid |
int |
$event_pid |
The page ID (pid) where the event occurred. Used to select log-content for specific pages. |
|
NEWid |
varchar(20) |
$NEWid |
Special field used by tce_main.php. NEWid string of newly created records. |
|
tstamp |
int |
- |
EXEC_TIME of event, UNIX time in seconds. |
|
uid |
int |
- |
Unique ID for log entry, automatically inserted |
|
userid |
int |
- |
User ID of backend user, automatically set for you |
|
IP |
varchar(39) |
- |
REMOTE_ADDR of client |
|
workspace |
int |
- |
Workspace ID |
Making logging simple
While it is nice to have log message categorized and numbered during development and sometimes beyond that point a simpler logging API is necessary. Therefore you can also call this function:
BE_USER->simplelog($message, $extKey='', $error=0)
All you need is to set $message to store a log message. If you call it from an extension it is good practice to also supply the extension key. Finally you can add the error number (according to the table above) if you need to signal an error.