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.
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), "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 which arises
from the annotation menu, it will typically have these columns:
Column name |
Description |
---|---|
gesture_source |
"menu" |
gesture_type |
"kbd" (via keyboard accelerator), "mouse_click" (via menu selection), "auto" (for add_annotation, via autotagging) |
label |
the effective label of the annotation |
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 (annotation
gesture) |
||
attach_child |
add an annotation to an annotation-valued
attribute slot in the annotation editor (annotation gesture)
(paired with attach_to_parent) |
attr_name |
the attribute modified |
attach_to_parent |
add an annotation to an annotation-valued
attribute slot in the annotation editor (annotation gesture)
(paired with attach_child) |
attr_name |
the attribute modified |
autotag |
"Autotag matches" in annotation menu
(annotation gesture) |
||
cancel_annotation_change | "Cancel" in annotation menu | gesture_type | "kbd" (via keyboard accelerator), "mouse_click" (via menu selection) |
cancel_boundary_change |
in reconciliation, cancel the boundary change
popup menu |
||
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) | attr_name |
the attribute modified |
detach_from_parent |
remove an annotation from an annotation-valued attribute slot in the annotation editor (annotation gesture) (paired with attach_child) | attr_name |
the attribute modified |
dismiss_annotation_editor |
close the annotation editor popup or tab |
||
dismiss_annotation_popup | annotation menu disappears | ||
dismiss_boundary_change_popup |
in reconciliation, dismiss the boundary
change popup menu |
||
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 |
export_reconciliation_doc |
success response to
export_reconciliation_doc_request |
||
export_reconciliation_doc_failure |
error response to
export_reconciliation_doc_request |
||
export_reconciliation_doc_request |
"Reconciliation" -> "Export" |
||
hide_window | "-" in window title bar, "Show/hide" -> "Hide..." | gesture_source | "menu", "window_button" |
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 | ||
load_file | success response to open_file_request or reload_request | ||
load_file_failure | error response to open_file_request or reload_request | ||
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_annotation |
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 (annotation gesture) |
attr_name |
the attribute modified |
modify_extent |
"Modify extent" in
the annotation menu (annotation gesture) |
start |
the start index of the new span |
end |
the end index of the new span |
||
old_start |
the start index of the old span |
||
old_end |
the end index of the old span |
||
open_file | confirmation of open_file_request | file_type | the name of a reader |
open_file_request | "Open" in the "Load document" dialog, or selecting an element in the workspace folder view | ||
open_file_comparison | success response to
open_file_comparison_request |
||
open_file_comparison_failure | error response to open_file_comparison_request | ||
open_file_comparison_request | "File" -> "Compare files" |
documents |
a sequence of label names |
open_file_reconciliation | success response to
open_file_reconciliation_request |
||
open_file_reconciliation_failure | error response to open_file_reconciliation_request | ||
open_file_reconciliation_request | "File" -> "Reconcile" or
"File" -> "Reconcile these documents" |
documents |
a sequence of label names |
open_workspace | success response to open_workspace_request | ||
open_workspace_failure | error response to open_workspace_request | ||
open_workspace_request | "File" -> "Open workspace..." | ||
reconciliation_cast_vote |
selecting a vote when
reviewing a segment in a reconciliation document |
segment |
the ID of the segment |
vote |
"no annotations", "new annotation pattern",
or "vote<n>", where <n> is one of the available
preexisting votes |
||
reconciliation_review_segment |
selecting a segment in a reconciliation
document |
segment |
the ID of the segment annotation |
reconciliation_review_segment_cancelled |
clearing a vote when reviewing a segment in a
reconciliation document |
segment |
the ID of the segment annotation |
reconciliation_review_segment_done |
saving a vote when reviewing a segment in a
reconciliation document |
segment |
the ID of the segment annotation |
reload_aborted | response to reload_request when user aborts due to unsaved changes | reason | "dirty" |
reload_request | "Reload" button in file mode document window | ||
remove_annotation | annotation
removed as a result of annotation menu selection (annotation
gesture) |
||
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") | ||
step_backward_request | backward button in file mode document window | ||
step_forward_request | forward 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_type | "mouse_swipe", "mouse_click" |
summon_boundary_change_popup |
in reconciliation, present the boundary
change popup menu |
||
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.