The UI logger

The UI logger is enabled via the "Logging is off (press to start)" button in the UI menubar. This logger captures timestamped UI events performed by the user, as well as noting the system response. The logger does not capture the actual text affected, so that the logs can be shared with other developers without revealing any PII; however, the logger does capture the annotation labels themselves, so if these are sensitive, you won't be able to recirculate the logs. The logger also captures the offsets of the affected annotation.

You can stop the logger and save the log file by pressing "Logging is on (press to stop)". Your browser will download a CSV file containing the log.

The logger logs the UI activity in the form of gestures. Each gesture is a single UI action, but might correspond to multiple entries in the log. E.g., selecting "File -> Open file..." logs both the open_file_request action and the system's response, which is open_file. Similarly, a menu selection in an annotated document may remove an annotation and add another annotation.

The first eight columns of the log are:

Column name
Description
timestamp
A millisecond-granularity timestamp for the entry, of the form YYYY-MM-DD"T"HH:MM:SS.SSS, e.g. 2009-07-14T20:58:33.967
rel_seconds
A millisecond-granularity delta between this timestamp and the first timestamp in the log
gesture
The number of the gesture. There may be multiple contiguous entries in the log for the same gesture number, if the gesture is associated with multiple actions.
file
An anonymized name of the file affected by this gesture, if any
folder
The name of the workspace folder affected by this gesture, if any
workspace
An anonymized name of the workspace affected by this gesture,  if any
userid
An anonymized name of the user performing the workspace operation corresponding to this gesture, if any
window
An anonymized name of the window in which this gesture was performed,  if any
action
The action corresponding to this entry.

The remainder of the columns are parameters of the individual action. These columns will be, of necessity, sparsely populated, since they will only contain a value if that entry contains the corresponding action. There are two general categories of actions which have additional common columns. First, if the log entry is an error response (noted in the table below), it will typically have the following two columns:

Column name
Description
error_text
The text of the error
reason
"application" (the operation failed in the backend or core Javascript routines), "implementation" (the operation failed during transport), "json_decode" (the operation failed because the backend response couldn't be decoded)

Second,  if an action is an annotation gesture (indicated below), it may have these columns:

Column name
Description
gesture_source
"menu", "editor"
gesture_method
"kbd" (via keyboard accelerator in menu), "mouse_click" (via menu selection), "auto" (for add_annotation, via autotagging), "reconciliation_table" (by virtue of voting in the reconciliation table)
gesture_category
the general category of the gesture, currently one of "add_annotation", "remove_annotation", "replace_annotation", "modify_attribute", "modify_extent"
gesture_is_auto
whether the gesture is an autotagging gesture or not (either True or False)
label
the effective label of the annotation
start
the start index of the annotation
end
the end index of the annotation
attr_name
the attribute modified

Here are the actions, how they're triggered, their other columns, and the meaning of their column values:

Action
Trigger
Column
Description
add_annotation annotation added as a result of annotation menu selection or choose mode (annotation gesture)


attach_child
add an annotation to an annotation-valued attribute slot in the annotation editor or via annotation menu (annotation gesture) (paired with attach_to_parent)
child_label
the label of the added child
attach_to_parent
add an annotation to an annotation-valued attribute slot in the annotation editor or via annotation menu (annotation gesture) (paired with attach_child)
parent_label
the label of the parent attached to
autotag
"Autotag matches" in annotation menu (annotation gesture)


cancel_annotation_change "Cancel" in annotation menu gesture_method "kbd" (via keyboard accelerator), "mouse_click" (via menu selection)
close_alignment
"x" in alignment window title bar


close_comparison
"x" in comparison window title bar


close_reconciliation
"x" in reconciliation window title bar


close_file success response to close_file_request

close_file_aborted response to close_file_request when user aborts due to unsaved changes reason "dirty"
close_file_request "x" in document window title bar

close_workspace success response to close_workspace_request

close_workspace_request "x" in workspace window title bar

detach_child
remove an annotation from an annotation-valued attribute slot in the annotation editor (annotation gesture) (paired with detach_from_parent) child_label
the label of the detached child
detach_from_parent
remove an annotation from an annotation-valued attribute slot in the annotation editor (annotation gesture) (paired with attach_child) parent_label
the label of the parent detached from
dismiss_annotation_editor
close the annotation editor popup or tab


dismiss_annotation_popup annotation menu disappears

do_operation success response to do_operation_request advance_to folder the document has moved to
operation name of operation as the backend knows it
do_operation_failure error response to do_operation_request

do_operation_request "Go!" in workspace mode document window operation
the name of the operation as it appears in the UI
do_step success response to step_forward_request step name of step performed
do_step_failure error response to step_forward_request
step name of step where the error occurred
enter_step
the UI enters a step, or a phase of a step, in file mode
step
the step being entered
step_status
"absent" if the step has yet to be started, "present" if the step is in process, and "done" if the step is done
export_reconciliation_doc_failure
error response to export_reconciliation_doc_request


export_reconciliation_doc_request
"Reconciliation" -> "Export"


hand_annotation_completed
forward "hand" button in file mode document window step
name of step which has been completed
hand_annotation_uncompleted
backward "hand" button in file mode document window
step
name of step which has been uncompleted
list_workspace_folder success response to list_workspace_folder_request, or side effect of successful do_operation_request

list_workspace_folder_failure error response to list_workspace_folder_request

list_workspace_folder_request "Folder" menu selection or "Refresh" button in workspace window

log_start "Logger -> Start" from the menu bar

log_stop "Logger -> Stop" from the menu bar

log_stop_failure error response to log_stop when remote server is not available reason "implementation" (the operation failed during transport)
modify_attribute
change the (non-annotation-valued) attribute of an annotation from the annotation editor, or change the effective label of an annotation to another effective label of the same true label, or change a choice attribute from the annotation editor (annotation gesture)


modify_extent
"Modify extent" in the annotation menu (annotation gesture)
old_start
the start index of the old span
old_end
the end index of the old span
open_alignment
"File" -> "Align files" (no request log + success in this case because no backend interaction is required)
files
a sequence of label names
open_file confirmation of open_file_request, reload_file_request, open_file_comparison_request, open_file_reconciliation_request, export_reconciliation_doc_request
file_type the name of a reader, in file mode
task
the name of the chosen task, in file mode
language
the selected language, in file mode
workflow
the workflow under which the file was opened, in file mode
readonly
"yes" if the file was opened read-only
doc_type
"simple", "reconciliation", or "comparison", in file mode
open_type
either "open", if this was a normal load or reload, or the operation which triggered the open (open_file_comparison, open_file_reconciliation, export_reconciliation_doc)
open_file_failure
error response to open_file_request or reload_file_request


open_file_request "Open" in the "Load document" dialog, or selecting an element in the workspace folder view

open_file_comparison_failure error response to open_file_comparison_request

open_file_comparison_request "File" -> "Compare files"
files
a sequence of label names
open_file_reconciliation_failure error response to open_file_reconciliation_request

open_file_reconciliation_request "File" -> "Reconcile" or "File" -> "Reconcile these documents"
files
a sequence of label names
open_workspace success response to open_workspace_request task
the name of the workspace task
language
the workspace language
readonly
"yes" if the workspace was opened read-only
open_workspace_failure error response to open_workspace_request

open_workspace_request "File" -> "Open workspace..."

reconciliation_vote
choosing a vote in the reconciliation UI
vote
document label of the document providing the selected choice
prior_vote
if this is a revote, the label of the previous vote's document label
reconciliation_vote_failure
error response from choosing the vote


reconciliation_split
"Split" button in vote in reconciliation UI
prior_vote
if this is a split of an already-decided vote, the previous vote's document label
reload_file_aborted response to reload_request when user aborts due to unsaved changes reason "dirty"
reload_file_request "Reload" button in file mode document window

remove_annotation annotation removed as a result of annotation menu selection (annotation gesture)


remove_annotation_failure
error response from trying to remove an annotation


replace_annotation_failure
error response from trying to replace an annotation
reason
"application"
save_file success response to save_file_request file_type the name of a writer
save_type
either "save", if this is a normal save, or the operation that was performed before it was saved (e.g., "export_reconciliation_doc")
save_file_failure error response to save_file_request reason "implementation" (the operation failed during transport)
save_type
either "save", if this is a normal save, or the operation that was performed before it was saved (e.g., "export_reconciliation_doc")
save_file_request "Save..." in file mode document window file_type the name of a writer
save_type
either "save", if this is a normal save, or the operation that was performed before it was saved (e.g., "export_reconciliation_doc")
save_file_request_aborted "Cancel" in save dialog file_type the name of a writer
save_type either "save", if this is a normal save, or the operation that was performed before it was saved (e.g., "export_reconciliation_doc")
select_tab
a file tab becomes active


step_backward_request backward button in file mode document window

step_forward_request forward "gear" button in file mode document window

summon_annotation_editor
"Edit annotation", "Edit annotation in popup", or "Edit annotation in tab" in the annotation menu


summon_annotation_popup swipe or left-click in document pane gesture_method "mouse_swipe", "mouse_click"
undo_step success response to step_backward_request step name of step performed
undo_step_aborted response to step_backward_request when user aborts due to unsaved changes reason "dirty"
undo_step_failure error response to step_backward_request step
step on which error occurred
update_reconciliation_doc
success response to update_reconciliation_doc_request


update_reconciliation_doc_failure
error response to update_reconciliation_doc_request


update_reconciliation_doc_request
"Reconciliation" -> "Export" (documents must be updated before being exported), "Reconciliation" -> "Process votes"


The extra columns that appear in the spreadsheet for these actions appear in alphabetical order.