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.