Logging

Pootle’s default logging has configurations for all important aspects of the server that we want to log. Pootle also logs to the ‘action’ logger that will log every user, system and command action executed on the server.

Action logger

The action logger logs each activity related to translation, units changes, store changes, command execution and other activities.

The generic log message is as follows (though some actions do produce slightly different log entries):

[2015-05-04T15:06:39]   system  X   ./manage.py update_tmserver

That is:

[date] user type message

Action types

Current action types are as follows:

Action Group Description
A Translation Translation submission added a translation
C Translation An existing translation was changed
D Translation An existing translation was deleted
UA Unit A new unit was added
UO Unit An existing unit was made obsolete
UR Unit An obsolete unit was resurected i.e. reinstated
UD Unit An existing unit was deleted
SA Store A new store was added
SO Store An existing store was made obsolete
SR Store An obsolete store was reinstated
SD Store An existing store was deleted
X Command A ./manage.py command was executed
QM Quality check A quality check was muted (marked as a false positive)
QU Quality check A quality check was unmuted (reenabled after having been muted)
SC Score A users score has changed because of an action
PTA Paid Task A paid task has been added
PTD Paid Task A paid task has been deleted

Score Translation Actions

In addition the SC action type also has its own actions which track the actual type of activity that leads to changes in translation. These are used to track scores for the translators.

Action Description
TA unit translated
TE unit edited after someone else
TX unit edited after themselves
TD translation deleted by admin
R translation reviewed
TF translation’s fuzzy flag is set by admin
XE translation penalty [when translation deleted]
XR translation penalty [when review canceled]
S suggestion added
SA suggestion accepted (counted towards the suggestion author)
SR suggestion rejected (counted towards the suggestion author)
RA suggestion accepted (counted towards the reviewer)
RR suggestion rejected (counted towards the reviewer)

Action messages

Various of the action groups have different message structures as outlined here:

Translation:

date  user  action  lang    unit    path    translation
[2015-05-19T14:11:18]   admin   C       af      2       /af/tutorial/stats-test.po      Twee
[2015-05-19T14:12:17]   admin   A       af      3       /af/tutorial/stats-test.po      Drie
[2015-05-19T14:13:05]   admin   D       af      1       /af/tutorial/stats-test.po

Unit:

date  user    action  language    unit    file    translation
[2015-05-06T16:25:20] system  UA      am      4109    /am/terminology/gnome/am.po     MSDOS
[2015-05-06T16:37:05] system  UA      cs      12043   /cs/terminology/gnome/cs.po     přepínač

Store:

date  user    action  path    store
[2015-05-05T20:23:37] system  SA      /templates/tutorial/tutorial.pot        1

Command:

date  user  action command
[2015-05-06T11:24:28] system  X       ./manage.py update_stores --project=vfolders
[2015-05-05T20:22:46] system  X       ./manage.py migrate

Quality check:

date  user    action  lang    unit    path    translation
[2015-05-19T14:16:36]   admin   QM      af      855     /af/terminology/gnome-terminologie.po   lug
[2015-05-19T14:17:44]   admin   QU      af      855     /af/terminology/gnome-terminologie.po   lug

Score:

date  user    SC  score_delta  score_action    #unit  NS=wordcount    S=similarity   total
[2015-05-19T14:19:11]   admin   SC      1.0     TA      #1      NS=1    S=0.0   (total: 2.28571428571)

Paid Task:

date  user    action  Task: [id, user, date, type, amount, comment]
[2015-05-19T14:35:34]   admin   PTA     Task: [id=1, user=admin, month=2015-05, type=Translation, amount=1000.0, comment=Translate UI]

Sync and Update messages

The sync_stores and update_stores commands will produce a number of logs to report any activity that results from those commands.

update_stores:

[$date] [update] updated $number units in $store_path [revision: $revision]
[2015-05-19T21:06:24]   [update] updated 1 units in /an/libo_ui/dictionaries/pt_PT.po [revision: 58]

sync_stores:

[$date]   [sync] File saved; updated $number units in $store_path [revision: $revision]
[2015-05-19T23:11:50]   [sync] File saved; updated 1 units in /an/libo_ui/avmedia/source/viewer.po [revision: 0]