- Ensure no print() is in use - Ensure each module uses a module-level logger - Initialize the logger with a default formatter and loglevel dependent on a command line flag - Pass an optional path to a logging config