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.