Default logging configuration for uStack style Python applications.
pip install ustack-logging
from ustack_logging.logging_configuration import configure_logging
def main():
configure_logging()
# Run your application
if __name__ == "__main__":
main()
This library is intended to codify the standard way uStudio Python applications log and report errors when running inside Kubernetes. It takes no configuration because its intent is to enforce a configuration.
However, it is built on datadog-logger, which is configurable. If you need a different configuration, it should be trivial to implement it using that library directly.
The library configures the following things:
It sets up the logging library to log the time, log level, module name
and log message for every message, and it sets the current log level
to INFO
.
In order to function, it uses a secret named environment-info
in the
ustudio-system
namespace. The secret must contain the keys
environment
and datadog-api-key
, and the pod must contain a label
named role
.
If any information is missing or any connections fail it logs a warning and does not error.
It configures the datadog-logger
library to send ERROR
and above
log messages to Datadog as events, with the following tag mapping:
environment-info.environment
-> Datadog tagenvironment
- K8s Pod Namespace -> Datadog tag
service
- K8s Pod Label
role
-> Datadog tagrole