Manual:Logging table

Every log action in MediaWiki is logged in the logging table. Users can see those edits on Special:Log, except for a few restricted logs (like Special:Log/suppress ).

The contents of this table is what you see on the Special:Log page. For example:



log_id
Primary key for the table. is a foreign key linking to this column.

log_type
The type of the log action, or the "log type".

You can filter by some values of this type on Special:Log.

Comparable to.

Example values from some Wikimedia wikis are as follows (including now-obsolete logs and several extensions):


 * abusefilter
 * block
 * close
 * contentmodel
 * delete
 * gblblock
 * gblrights
 * globalauth
 * gwtoolset
 * import
 * liquidthreads
 * lock
 * managetags
 * massmessage
 * merge
 * move
 * mwoauthconsumer
 * newsletter
 * newusers
 * notifytranslators
 * pagelang
 * pagetranslation
 * patrol
 * protect
 * renameuser
 * review
 * rights
 * spamblacklist
 * tag
 * thanks
 * timedmediahandler
 * translationreview
 * upload
 * usermerge

log_action
The action performed. There may be multiple actions possible for a given type: for example, an entry with the type delete may have the action delete or restore, etc. Comparable to. See also. See.

log_timestamp
The time the action was performed, in the timestamp format MediaWiki uses everywhere in the database: yyyymmddhhmmss ("14:18, 25 June 2008" in example). Comparable to and. If the log event is a file upload, this field is not necessarily the same as the generated by .

log_user
The of the user who performed the action. This is a reference into the table (the user id of "Jacksprat" in example). Comparable to and.

Deprecated in favor of log_actor.

log_user_text
of the user who performed the action, intended primarily for anonymous users, fillable by maintenance/populateLogUsertext.php. Comparable to and.

Deprecated in favor of log_actor.

log_actor
This is a foreign key to  in the table, corresponding to the user (registered or anonymous) who performed the action.

log_namespace
The namespace of the affected page. Together with log_title, this is a reference into the table ("Image:Climb.jpg" in example). Comparable to.


 * Special:Renameuser with log_type and log_action being either "" or "renameuser"


 * Special:Userlogin with log_type being "newusers" and log_action e.g. being "create"

log_title
The of the affected page. Together with log_namespace, this is a reference into the table. Comparable to

The title is also known as the log entry's 'target'.

For user blocks, this is the blocked user's username. For thanks action, this is the thanked user's username.

log_page
The that this log action is about. Comparable to and. In the case of a page move, this is set to the page_id of the moved page (since ). Formerly, it was the page_id of the redirect, or 0 if the page was moved without creating a redirect.

log_comment
The comment given for the action; that is the upload comment for uploads, the deletion comment for deletions, etc. Comparable to and.


 * log_comment_id and the table should be used instead!

log_comment_id
This is a foreign key to in the  table.

log_params
Additional parameters, usually empty. Mirrored in. log_params is usually serialized, but not always; sometimes, for historical reasons, fields for log_params are separated by a newline. Anyone creating a new log type should use the PHP serialization.

For user blocks, log_params contains the duration of the block and other data, in human readable form, e.g. "2 weeks nocreate,noautoblock,noemail". For page moves, it contains a serialized array of the prefixed page title the page was moved to (i.e. in FULLPAGENAME format) and the boolean value of. For other examples, see.

Since 1.19, data in log_params is in a different format. For instance, if you want to filter patrol/patrol log entries excluding autopatrol, pre-1.19 log entries need: log.log_params LIKE '%\n0' while entries added in 1.19 and further need (serialized PHP arrays): log.log_params LIKE '%"6::auto";i:0%'

Since, log_params is always serialized for newusers log too. An entry now looks like:

mysql> select log_params, log_action from logging where log_user = 4681690; +--++ +--++ +--++
 * log_params                      | log_action |
 * a:1:{s:9:"4::userid";i:4681690;} | autocreate |

while it used to look like:

mysql> select log_params, log_action from logging where log_user = 2298743; +++ +++ +++
 * log_params | log_action |
 * 2298743   | autocreate |

The numbers, e.g. the 4 in "4::userid", are used as the argument number for message keys (e.g. $1, $2,...). The numbering should start with number 4, as the first three parameters are hardcoded for every message. If there is no message key, then a number should not be used. Some data contained in log_params are also contained in to facilitate indexed queries. Log parameters are typically set using functions such as  and .

log_deleted
Used with the system to delete log entries. Comparable to and. It is a bit field. Take the sum of the following to determine what it represents:


 * 1 Action deleted
 * 2 Comment deleted
 * 4 User deleted
 * 8 If the deleted information is restricted. If this field is not set, then only deletedhistory right is needed, otherwise you need suppressrevision right.  (On Wikimedia wikis, this corresponds to if admins can view the entry, or if only oversighters can)

For example, if the value is 6 (4+2), then the action would be visible, but the comment and user would not be unless you had deletedhistory rights.

Schema summary
++-+--+-+++ ++-+--+-+++ ++-+--+-+++
 * Field         | Type                | Null | Key | Default        | Extra          |
 * log_id        | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * log_type      | varbinary(32)       | NO   | MUL |                |                |
 * log_action    | varbinary(32)       | NO   |     |                |                |
 * log_timestamp | binary(14)          | NO   | MUL | 19700101000000 |                |
 * log_actor     | bigint(20) unsigned | NO   | MUL | NULL           |                |
 * log_namespace | int(11)             | NO   | MUL | 0              |                |
 * log_title     | varbinary(255)      | NO   |     |                |                |
 * log_page      | int(10) unsigned    | YES  | MUL | NULL           |                |
 * log_comment_id | bigint(20) unsigned | NO  |     | NULL           |                |
 * log_params    | blob                | NO   |     | NULL           |                |
 * log_deleted   | tinyint(3) unsigned | NO   |     | 0              |                |

++-+--+-+++ ++-+--+-+++ ++-+--+-+++
 * Field         | Type                | Null | Key | Default        | Extra          |
 * log_id        | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * log_type      | varbinary(32)       | NO   | MUL |                |                |
 * log_action    | varbinary(32)       | NO   |     |                |                |
 * log_timestamp | binary(14)          | NO   | MUL | 19700101000000 |                |
 * log_user      | int(10) unsigned    | NO   | MUL | 0              |                |
 * log_user_text | varbinary(255)      | NO   | MUL |                |                |
 * log_actor     | bigint(20) unsigned | NO   | MUL | 0              |                |
 * log_namespace | int(11)             | NO   | MUL | 0              |                |
 * log_title     | varbinary(255)      | NO   |     |                |                |
 * log_page      | int(10) unsigned    | YES  | MUL | NULL           |                |
 * log_comment_id | bigint(20) unsigned | NO  |     | NULL           |                |
 * log_params    | blob                | NO   |     | NULL           |                |
 * log_deleted   | tinyint(3) unsigned | NO   |     | 0              |                |

++-+--+-+++ ++-+--+-+++ ++-+--+-+++
 * Field         | Type                | Null | Key | Default        | Extra          |
 * log_id        | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * log_type      | varbinary(32)       | NO   | MUL |                |                |
 * log_action    | varbinary(32)       | NO   |     |                |                |
 * log_timestamp | binary(14)          | NO   | MUL | 19700101000000 |                |
 * log_user      | int(10) unsigned    | NO   | MUL | 0              |                |
 * log_user_text | varbinary(255)      | NO   | MUL |                |                |
 * log_actor     | bigint(20) unsigned | NO   | MUL | 0              |                |
 * log_namespace | int(11)             | NO   | MUL | 0              |                |
 * log_title     | varbinary(255)      | NO   |     |                |                |
 * log_page      | int(10) unsigned    | YES  | MUL | NULL           |                |
 * log_comment   | varbinary(767)      | NO   |     |                |                |
 * log_comment_id | bigint(20) unsigned | NO  |     | 0              |                |
 * log_params    | blob                | NO   |     | NULL           |                |
 * log_deleted   | tinyint(3) unsigned | NO   |     | 0              |                |

++-+--+-+++ ++-+--+-+++ ++-+--+-+++
 * Field         | Type                | Null | Key | Default        | Extra          |
 * log_id        | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * log_type      | varbinary(32)       | NO   | MUL |                |                |
 * log_action    | varbinary(32)       | NO   |     |                |                |
 * log_timestamp | binary(14)          | NO   | MUL | 19700101000000 |                |
 * log_user      | int(10) unsigned    | NO   | MUL | 0              |                |
 * log_user_text | varbinary(255)      | NO   | MUL |                |                |
 * log_namespace | int(11)             | NO   | MUL | 0              |                |
 * log_title     | varbinary(255)      | NO   |     |                |                |
 * log_page      | int(10) unsigned    | YES  | MUL | NULL           |                |
 * log_comment   | varbinary(767)      | NO   |     |                |                |
 * log_comment_id | bigint(20) unsigned | NO  |     | 0              |                |
 * log_params    | blob                | NO   |     | NULL           |                |
 * log_deleted   | tinyint(3) unsigned | NO   |     | 0              |                |

+---+-+--+-+++ +---+-+--+-+++ +---+-+--+-+++
 * Field        | Type                | Null | Key | Default        | Extra          |
 * log_id       | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * log_type     | varbinary(32)       | NO   | MUL |                |                |
 * log_action   | varbinary(32)       | NO   |     |                |                |
 * log_timestamp | binary(14)         | NO   | MUL | 19700101000000 |                |
 * log_user     | int(10) unsigned    | NO   | MUL | 0              |                |
 * log_user_text | varbinary(255)     | NO   | MUL |                |                |
 * log_namespace | int(11)            | NO   | MUL | 0              |                |
 * log_title    | varbinary(255)      | NO   |     |                |                |
 * log_page     | int(10) unsigned    | YES  | MUL | NULL           |                |
 * log_comment  | varbinary(767)      | NO   |     |                |                |
 * log_params   | blob                | NO   |     | NULL           |                |
 * log_deleted  | tinyint(3) unsigned | NO   |     | 0              |                |

+---+-+--+-+++ +---+-+--+-+++ +---+-+--+-+++
 * Field        | Type                | Null | Key | Default        | Extra          |
 * log_id       | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * log_type     | varbinary(32)       | NO   | MUL |                |                |
 * log_action   | varbinary(32)       | NO   |     |                |                |
 * log_timestamp | binary(14)         | NO   | MUL | 19700101000000 |                |
 * log_user     | int(10) unsigned    | NO   | MUL | 0              |                |
 * log_user_text | varbinary(255)     | NO   | MUL |                |                |
 * log_namespace | int(11)            | NO   | MUL | 0              |                |
 * log_title    | varbinary(255)      | NO   |     |                |                |
 * log_page     | int(10) unsigned    | YES  | MUL | NULL           |                |
 * log_comment  | varbinary(255)      | NO   |     |                |                |
 * log_params   | blob                | NO   |     | NULL           |                |
 * log_deleted  | tinyint(3) unsigned | NO   |     | 0              |                |

+---+-+--+-+++ +---+-+--+-+++ +---+-+--+-+++
 * Field        | Type                | Null | Key | Default        | Extra          |
 * log_id       | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * log_type     | varbinary(32)       | NO   | MUL |                |                |
 * log_action   | varbinary(32)       | NO   |     |                |                |
 * log_timestamp | binary(14)         | NO   | MUL | 19700101000000 |                |
 * log_user     | int(10) unsigned    | NO   | MUL | 0              |                |
 * log_user_text | varbinary(255)     | NO   |     |                |                |
 * log_namespace | int(11)            | NO   | MUL | 0              |                |
 * log_title    | varbinary(255)      | NO   |     |                |                |
 * log_page     | int(10) unsigned    | YES  | MUL | NULL           |                |
 * log_comment  | varbinary(255)      | NO   |     |                |                |
 * log_params   | blob                | NO   |     | NULL           |                |
 * log_deleted  | tinyint(3) unsigned | NO   |     | 0              |                |

+---+-+--+-+++ +---+-+--+-+++ +---+-+--+-+++
 * Field        | Type                | Null | Key | Default        | Extra          |
 * log_id       | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * log_type     | varbinary(10)       | NO   | MUL |                |                |
 * log_action   | varbinary(10)       | NO   |     |                |                |
 * log_timestamp | binary(14)         | NO   | MUL | 19700101000000 |                |
 * log_user     | int(10) unsigned    | NO   | MUL | 0              |                |
 * log_namespace | int(11)            | NO   | MUL | 0              |                |
 * log_title    | varbinary(255)      | NO   |     |                |                |
 * log_comment  | varbinary(255)      | NO   |     |                |                |
 * log_params   | blob                | NO   |     | NULL           |                |
 * log_deleted  | tinyint(3) unsigned | NO   |     | 0              |                |

+---+-+--+-+++ +---+-+--+-+++ +---+-+--+-+++
 * Field        | Type                | Null | Key | Default        | Extra          |
 * log_id       | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * log_type     | varbinary(10)       | NO   | MUL |                |                |
 * log_action   | varbinary(10)       | NO   |     |                |                |
 * log_timestamp | binary(14)         | NO   | MUL | 19700101000000 |                |
 * log_user     | int(10) unsigned    | NO   | MUL | 0              |                |
 * log_namespace | int(11)            | NO   | MUL | 0              |                |
 * log_title    | varbinary(255)      | NO   |     |                |                |
 * log_comment  | varbinary(255)      | NO   |     |                |                |
 * log_params   | blob                | NO   |     | NULL           |                |
 * log_deleted  | tinyint(3) unsigned | NO   |     | 0              |                |

+---+-+--+-+++ +---+-+--+-+++ +---+-+--+-+++
 * Field        | Type                | Null | Key | Default        | Extra          |
 * log_type     | char(10)            | NO   | MUL | NULL           |                |
 * log_action   | char(10)            | NO   |     | NULL           |                |
 * log_timestamp | char(14)           | NO   | MUL | 19700101000000 |                |
 * log_user     | int unsigned        | NO   | MUL | 0              |                |
 * log_namespace | int                | NO   | MUL | 0              |                |
 * log_title    | varchar(255) binary | NO   |     | NULL           |                |
 * log_comment  | varchar(255)        | NO   |     | NULL           |                |
 * log_params   | blob                | NO   |     | NULL           |                |

+---+-+--+-+++ +---+-+--+-+++ +---+-+--+-+++
 * Field        | Type                | Null | Key | Default        | Extra          |
 * log_type     | char(10)            | NO   | MUL | NULL           |                |
 * log_action   | char(10)            | NO   |     | NULL           |                |
 * log_timestamp | char(14)           | NO   |     | 19700101000000 |                |
 * log_user     | int unsigned        | NO   | MUL | 0              |                |
 * log_namespace | int(11)            | NO   | MUL | 0              |                |
 * log_title    | varchar(255) binary | NO   |     | NULL           |                |
 * log_comment  | varchar(255)        | NO   |     | NULL           |                |
 * log_params   | blob                | NO   |     | NULL           |                |

+---+-+--+-+++ +---+-+--+-+++ +---+-+--+-+++
 * Field        | Type                | Null | Key | Default        | Extra          |
 * log_type     | char(10)            | NO   | MUL | NULL           |                |
 * log_action   | char(10)            | NO   |     | NULL           |                |
 * log_timestamp | char(14)           | NO   |     | 19700101000000 |                |
 * log_user     | int unsigned        | NO   | MUL | 0              |                |
 * log_namespace | tinyint(?) unsigned | NO  | MUL | 0              |                |
 * log_title    | varchar(255) binary | NO   |     | NULL           |                |
 * log_comment  | varchar(255)        | NO   |     | NULL           |                |
 * log_params   | blob                | NO   |     | NULL           |                |

Indexes
 +-++-+--+---+---+-+--++--++-+---+ +-++-+--+---+---+-+--++--++-+---+ +-++-+--+---+---+-+--++--++-+---+
 * Table  | Non_unique | Key_name            | Seq_in_index | Column_name   | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
 * logging |         0 | PRIMARY             |            1 | log_id        | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_type_time       |            1 | log_type      | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_type_time       |            2 | log_timestamp | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_actor_time      |            1 | log_actor     | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_actor_time      |            2 | log_timestamp | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_page_time       |            1 | log_namespace | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_page_time       |            2 | log_title     | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_page_time       |            3 | log_timestamp | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_times           |            1 | log_timestamp | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_actor_type_time |            1 | log_actor     | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_actor_type_time |            2 | log_type      | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_actor_type_time |            3 | log_timestamp | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_page_id_time    |            1 | log_page      | A         |           0 |     NULL | NULL   | YES  | BTREE      |         |               |
 * logging |         1 | log_page_id_time    |            2 | log_timestamp | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_type_action     |            1 | log_type      | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_type_action     |            2 | log_action    | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
 * logging |         1 | log_type_action     |            3 | log_timestamp | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |