List of TODOs (FIXEME PLEAZE):
- Fixed hierarchy depth = 1
- Log to console
- Log to json
- Catch errors for handling
- [-] Use proper logging library for console output
- Setup sentry for trace debugging
- Only allow context to be used once!
- Consider hierarchy when logging, list of names or use dot notation for names?
- Get ok/error for the upper levels in the hierarchy automatically
- More error and info types that are better for logging data (number of datapoints, etc..)
- Function decorator for context management. PDF generator superclass to not get messy dependencies?
- Get contextualized logger from pdf_context?