Logger¶
Logging is always a heated subject. You should definitely have it, but how? Some prefere relying on existing libraries.
Among those we are aware of, we can vouch for
- loguru, user friendly logging, period 😊.
- icecream, more for debugging purposes as they advocate themselves
Our solution is more similar to loguru, but without the additional dependency.
How to use logging?¶
Vanilla log
¶
Simply put on top of all of your modules
from ecodev_core import logger_get
log = logger_get(__name__)
Afterwards, you use log as you would use it normally: log.info('info')
, log.critical('critical')
...
The benefits of using the ecodev_core
logger
can hopefully be illustrated in the next image
Benefits of using ecodev_core logger
As you can see, you get out of the box
- colors
- datetime
- ppid
- the name of the method and module where the log sits, alongside with the exact code line
- the actual message
In production, the colors prove invaluable when scanning big chunk of logs (yes, we can improve on the automatic log treatment side 😊). Same goes for where the log was generated.
log_critical
¶
sometimes you want to log an error inside a try except. This you can accomplish in the following manner
from ecodev_core import logger_get
log = logger_get(__name__)
log_critical("something terrible happened", log)
Benefits of using ecodev_core log_critical
This proves particularly useful in Dash applications, where by default if do not use this logger you get very uninformative messages
Sometimes dash is not really nice