An overview of how UI logging works in LibreOffice
Logging in LibreOffice is mainly handled by a class called UITestLogger, defined here . The logger class logs the user actions only if the member flag mbValid is set to true. The flag can be turned on by setting the environment variable LO_COLLECT_UIINFO to a file name where the logs should be collected (see the constructor of UITestLogger, defined here ). We maintain a pointer to an instance of UITestLogger class here . To use the logger object, the static function getInstance can be used to get access to the pointer. The function logAction, defined in the same class, is used to log events from the classes which extend the class vcl::Control. The log statements corresponding to a particular class can be found in the function get_action of the UI wrapper classes. Most of the wrapper classes can be found with this OpenGrok search. The log statements get generated when VCL events get broadcasted. A list of the VCL events can be found in the enum class VclEventId here . ...