The UI Logger

The UI logger is enabled using "Logging -> Start" in the UI. 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 private information.

You can stop the logger and save the log file by selecting "Logging -> 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
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.

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

Action
Trigger
Column
Description
add_annotation annotation added as a result of annotation menu selection gesture_source "menu"
gesture_type "kbd" (via keyboard accelerator), "mouse_click" (via menu selection)
label the annotation label
cancel_annotation_change "Cancel" in annotation menu gesture_type "kbd" (via keyboard accelerator), "mouse_click" (via menu selection)
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

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
do_operation_failure error response to do_operation_request 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)
do_operation_request "Go!" in workspace mode document window

do_step success response to step_forward_request step name of step performed
do_step_failure error response to step_forward_request 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)
step name of step where the error occurred
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 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)
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 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)
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)
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_workspace success response to open_workspace_request

open_workspace_failure error response to open_workspace_request 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)
open_workspace_request "File" -> "Open workspace..."

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 gesture_source "menu"
gesture_type "kbd" (via keyboard accelerator), "mouse_click" (via menu selection)
label the annotation label
save_file success response to save_file_request file_type the name of a writer
save_file_failure error response to save_file_request reason "implementation" (the operation failed during transport)
save_file_request "Save raw" or "Save mat-json" in file mode document window file_type the name of a writer
save_file_request_aborted "Cancel" in save dialog file_type the name of a writer
show_window "Show/hide" -> "Show..." gesture_source "menu"
step_backward_request backward button in file mode document window

step_forward_request forward button in file mode document window

summon_annotation_popup swipe or left-click in document pane gesture_type "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 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)

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