Seriously upgrade the WOLF logging !
Those familiar with ROS
logging macros will clearly see the parallel.
LoggerManager
-> basically a map<string, Logger>
_COND
key-word to the existing macros. It is thus a conditional logging e.g.WOLF_INFO_COND(true, "will be printed"); WOLF_WARN_COND(false, "will NOT be printed");
_NAMED
key-word which allows custom loggers. Those loggers will print their own name as part of the message header e.g. WOLF_INFO_NAMED("my proc", "this is fine.") -> [info][10/09/17 - 16:47:59.548894601][my proc] this is fine.
._NAMED
macro come of course with the combination _NAMED_COND
.processor_logging.h
which defines a bunch of pre-named macros using the processor getType
.WOLF_PROCESSOR_DEBUG("this works fine"); -> [debug][10/09/17 - 16:47:59.548894601][ODOM 2D] this works fine
.
WOLF_PROCESSOR_DEBUG_COND(my_test_bool, "this test passed"); -> [debug][10/09/17 - 16:47:59.548894601][ODOM 2D] this test passed
.WOLF_PROCESSOR_
macros also implement a static_assert
making sure they are called only from within a Processor
.This all came for the need of a 'finer' granularity in the logging, especially in when compiled in debug and all kind of crazy messages appears.