Points in this section are not necessarily going to be implemented. These are
mainly some thoughts on further improvements of the library.
Optimize single-threaded configuration. In many places dynamic memory allocation
can be avoided if multithreading support is disabled.
SNMP support. The idea is to implement a sink backend that would emit SNMP
traps as a result of processing log records. This needs quite an amount
of research and thinking over.
Provide a compile-time option to remove all logging from the application
(the compiled binary should contain no traces of logging internally). There
are two reasons for this request: attempting to achieve maximum performance
and concealing internal information, such as function names and internal
messages, to prevent reverse engineering in no-logging builds. Effectively,
this would require not only all library macros to be redefined to emptiness,
but also to provide dummy implementations of many library components. Needs
more consideration. Perhaps, suppressing only macros would be sufficient.
Provide a macro, like
but with ability to automatically log all function arguments.
Think over a header-only configuration. Perhaps, with a reduced functionality.
Update syslog support to RFC
Provide some kind of shared formatters. The idea is that several sinks
may use the same formatter. If a log record passes filtering to multiple
such sinks, the formatting is done just once for all sinks that share the
formatter. Maybe, it will require refactoring the sinks architecture, transforming
them into pipelines with formatter and backends being just steps in log
Allow to change the locale for the file stream in the text file backend.
The locale can alter the character code conversion in wide-character logging.
Improve file collection in the file sink. Make it possible to (i) rename
collected files and (ii) collect files in a dedicated thread.
Provide headers with forward declarations of the library components.
Make it possible to update library configuration after loading settings
from a file. Probably, this will require a new configuration entity that
will be able to detect and apply changes between settings.
Develop a statistics gathering framework. The basic idea is to provide
a specific log source and a pin. The user can pin his data or explicitly
indicate events by invoking the log source. The source would automatically
collect the data from the pinned variables. This source should have a better
integration with filters to be able which pins should be collected and
which should not.
Allow to specify a process ID in the file name pattern for file-based sinks.
Improve support for
formatter, implement placeholder format flags.