I'm writing this post in regard to the new c++ logging library that I am working on.
• Written in modern C++17/20
• Very fast non-async logging (async logging is yet to be implemented)
• Verbosity levels
• Various thread-safe log sinks
‣ Console (stdout, stderr)
‣ File
• Support for both compile-time and runtime sink configuration• Custom sink configuration - each sink can have a unique log pattern and verbosity level
• Log formatting according to a custom user-defined pattern
• Custom pattern attributes
• Global logger registry
• High extensibility - very easy to add your own types of sinks and loggers
• Very configurable - it uses policy classes which you can just plug in based on your needs. At the same time, convenient easy-to-use predefined types are made for the people who want simplicity without too much configuration. Most of the time you will be just fine with using the predefined types. They can be found at the top of the "lwlog.h" file.
What is yet not implemented is:
• Portable colors (the colors are only handled with escape sequences, there is still no cross-platform coloring since some consoles do not support escape sequences)
• Async logger
• UTF support
I have done benchmarks against spdlog, and you can take a look at them in the README in the repository
Also benchmarking is not done correctly in the main repository. I have benchmarks in my private dev repository and I am benchmarking either with picobench or nanobench. So if you want to benchmark, do NOT rely on the Benchmark.h file in the project (it's a temporary file that is meant to be removed)
I would be very glad and honored if you drop a critique, an opinion, an idea, or want to contribute to the project: https://github.com/ChristianPanov/lwlog