A logging framework should be utilized to decouple EG from any specific logging implementation. The logging framework should:
- Support a wide range of logging library implementations, including implementations supported by k8s and k8s-related pkgs. Note that controller-runtime/Istio logging pkgs are built on top of Zap and k8s uses klog.
- Provide a lightweight interface that can be used to emit logs.
- Be well documented.
- Be widely implemented and well maintained by a large, diverse open source community.
- The API should restrict logging to just 2-3 types of logs, e.g. info and error.
- Provide structured logging.
- Provide verbosity levels on info logs as a numerical value instead of semantic meaning such as "warning", "debug", etc. This gives operators an easy way to control the chattiness of log operations.
- Integrate with the Cobra, making it easy for EG to use a consistent interface for logging.
A logging framework should be utilized to decouple EG from any specific logging implementation. The logging framework should: