ConcLog is a library for concurrent logging. It features the following:
- Print from different threads with no overlapping of the output
- Support for automatic registration/deregistration of threads (with example Thread implementation provided in the tests)
- Set relative indentation on all logger calls, even on free functions
- Set runtime verbosity to efficiently filter out unnecessarily detailed calls
- Themes for highlighting keywords (and ability to add custom keywords)
- Different output schedulers to offer different levels of guarantee on output order
- Support for holding text on the bottom line, useful for progress indicators (provided in the library) and similar displays
- A lot of configuration options for optionally printing entry/exit functions, thread identifiers, etc.
To build the library from sources in a clean way, it is preferable that you set up a build subdirectory, say:
$ mkdir build && cd build
Then you can prepare the build environment, choosing a Release build for maximum performance:
$ cmake .. -DCMAKE_BUILD_TYPE=Release
At this point, if no error arises, you can build with:
$ cmake --build .
The library is meant to be used as a dependency, in particular by disabling testing as long as the tests target is already defined in an enclosing project.
If you would like to contribute to ConcLog, please contact the developer:
- Luca Geretti [email protected]