Just throwing an example of a non-traditional(from log's API point of view) logging ?style?:
I was also working(sadly, no plans to work on it in the next 3 months) on a logging library based on log: dlt-rs.
For context?: DLT is very popular in the Automotive industry.
In DLT you usually register a context(Ctid in the image from the link I posted - used for filtering) and when calling the log level, we also pass the Context ID(C++ example):
qCDebug(MyContext) << "Hello";
More info about the initialization steps, log levels, etc…: https://at.projects.genivi.org/wiki/display/PROJ/DLT+cheatsheet
At work we use DLT through Qt’s logging framework.
Calling qCDebug would actually call QMessageLogger(links mostly for inspiration).
Observe that the log levels also have function overloads with QLoggingCategory as a parameter - this covers DLT’s Context ID use-case.
qCDebug by default calls Qt’s logging implementation(think env_logger) but we swap it with our implementation(dlt-rs?) with 1 header include.
Now to the issue:
At the moment, log's macros are not very friendly to this use-case.
There are workarounds of course - own macros for example.
I am not even sure if log needs to cover such a use-case - just wanted to throw the info out there.