OE 11. Logging - alalek/opencv GitHub Wiki
Add unified loging/tracing abilities into OpenCV
- Author: Alexander Alekhin, Vadim Pisarevsky
- Link: The feature request
- Status: Draft
- Platforms: All
- Complexity: a few man-weeks to do the basic stuff, some more time to convert existing logging code to the new API
Introduction and Rationale
OpenCV is already quite complex and in places a multi-layered library (e.g. the DNN module or video capturing API), so it could be useful to have logging capabilities. For example, logging may help to investigate and debug problems on inaccessible/remote platforms/hardware/cameras/etc. And it would be nice to use some convenient API across the whole library instead of chunks of conditionally-compiled code and ad-hoc printf's.
Proposed solution
The solution may be based on or resemble Google's glog library. Whatever framework is used as a base (or written from scratch), it should have the following properties at least:
- Practically zero overhead when the logging is turned off
- Logging calls should have "component" and "verbosity" parameters, so that logging could be enabled just for the certain component and just at the certain level of verbosity (or less).
- The control over logging should be done globally, but on per-thread basis.
Impact on existing code, compatibility
Because it's new API and the internal changes in the library, it should not affect the existing user code.
Possible alternatives
Leave it as-is.