CEGRcode/scriptmanager

Add Logging Framework

Closed this issue · 0 comments

owlang commented

Enable GUI users to track script executions from a session with the option to export a shell script style record of the session.

This would require adding Logging support for each tool but for the scope of this issue ticket, we just need to build out the initial framework and add support for a few tools to set as examples. Below is the initial design for the logging feature

New Classes:

  • LogItem
    • One per CLI execution statement - may create multiple LogItems per "Execute" click for tools that support bulk file selection
    • Track status - did it complete or error out?
  • LogInfo
    • Stores the set of LogItems from a session
    • Stores configs such as allow user to toggle logging on/off
  • LogManagerWindow
    • View list of LogItems
    • Manager and edit log configuration options
    • export log as shell script
    • user can spin this up from main window button

Add logging support to existing tools:

  • BED-to-GFF (simpler parameter options)
  • TagPileup (complex parameter options)
  • Mark Duplicates (Picard-style example)

Specifications for shell script:

  • Header to include version information
  • Header include `SCRIPTMANAGER=/path/to/s
  • Each LogItem should include comment with timestamp and execution status
  • Comment LogItem if execution failed
# This Log Record was generated on XXXX-XX-XX
# using ScriptManager (vXXXX)
SCRIPTMANAGER=/path/to/scriptmanger.jar
PICARD=/path/to/picard.jar

# XXXX-XX-XX
java -jar $SCRIPTMANAGER ...

# XXXX-XX-XX (incomplete)
#java -jar $SCRIPTMANAGER ...