A memory-safe "asynchronous structured logging system" implementation written in C++.
Memory safety in programming languages is no longer an option. This is an area that must be met.
However, the status of the C++ programming language in the current compiler industry is absolute. So I wrote the code in C++, but developed it to meet memory safety features.
When the LogBuilder
's Log()
function is called, the log object is only stored locally in the thread, and heavy IO
tasks such as Standard Out
or File
are performed in the Runner Thread
.
You can save key, value using LogBuilder
's Data(key, value)
method without having to include a key, value in the log message.
The abstract class Transport
can be implemented to add a variety of processing of Log
objects.
This project was developed based on Bazel.
Please ensure bazel
command and after calling the bazel --version
command, check whether the version is higher than 7.0.0
.
You can get IDE support by running the command below.
bazel run @hedron_compile_commands//:refresh_all
For more information, please refer to the link below.
https://github.com/hedronvision/bazel-compile-commands-extractor