Core Architecture: Major System: Logging and Error Reports - UA-ScriptEase/scriptease GitHub Wiki

The purpose of the Logging Aspect is to facilitate the logging of actions, program execution and problems in ScriptEase through the use of advice and pointcuts. This works on two levels:

  • Console Logging - visible in the console
  • Output Logging - output to file and send with bug report

When an uncaught exception is hit, the MemoryHandler flushes its logs to the NetworkHandler and to file.

The logging system uses the built in Java Logging system. Please refer to that for any questions regarding Loggers, Handlers, and Filtering.

Custom Handlers

In order to implement the desired behaviour we have created some custom ScriptEase Handlers.

Class Description
ScriptEaseMemoryHandler Similar to Java's MemoryHandler, except it condenses all records into a single record which is sent to it's target upon pushing (instead of sending record by record as MemoryHandler does).
MultiHandler Extends a Normal Handler allowing the Handler to publish to multiple sub handlers at once. Used by MemoryHandler's push method to allow multiple sub handle.
NetworkHandler Provides bug report handling for ScriptEase. It connects to the server and then sends each log as needed using the publish method.
CGI Script On the bug report receiving end, there is a Perl CGI script at http://webdocs.cs.ualberta.ca/~script/bugs/buglogger.cgi which receives the send error report, processes it, saves it to bugs and sends an email notification to the script email address.