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.

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.