diff --git a/PPI/DebugModules.cti b/PPI/DebugModules.cti index e9c73092c0c3844b9af4496a047bed6a5eb00851..1c46d1af1630baec3fa677215b19c8d4c82db229 100644 --- a/PPI/DebugModules.cti +++ b/PPI/DebugModules.cti @@ -48,7 +48,7 @@ template <class Stream, class Area, class Level> prefix_ void senf::ppi::module::debug::LogSink<Stream,Area,Level>::request() { Packet packet (input()); - SENF_LOG_BLOCK((Stream)(Area)(Level)({ + SENF_LOG_BLOCK_TPL((Stream)(Area)(Level)({ packet.dump(log); hexdump(packet.last().data().begin(), packet.last().data().end(),log); })); diff --git a/PPI/DebugModules.test.cc b/PPI/DebugModules.test.cc index a08801238f3520d34f31c357df9dbbea67976db6..20101981ab48dc9f326dac7b4caea2f9c2613328 100644 --- a/PPI/DebugModules.test.cc +++ b/PPI/DebugModules.test.cc @@ -36,7 +36,7 @@ namespace { std::stringstream logstream; } -#define SENF_LOG_CONF ((senf::log::Debug)(_)(VERBOSE)) +#define SENF_LOG_CONF (( (senf)(log)(Debug), (_), VERBOSE )) #include "../Packets/Packets.hh" #include "DebugModules.hh" diff --git a/Utils/Logger/Log.hh b/Utils/Logger/Log.hh index efb51433271f68d88fc937ffa9fcb2d3121e20cf..072e89387f3141f8e65cd3f8bc751c09a9d22ecf 100644 --- a/Utils/Logger/Log.hh +++ b/Utils/Logger/Log.hh @@ -51,6 +51,10 @@ SENF_LOG_BLOCK_( SENF_LOG_MERGE_PARAMETERS(BOOST_PP_SEQ_POP_BACK(args)), \ { log << BOOST_PP_SEQ_ELEM(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(args)),args); }) +#define SENF_LOG_TPL(args) \ + SENF_LOG_BLOCK_( SENF_LOG_MERGE_PARAMETERS_TPL(BOOST_PP_SEQ_POP_BACK(args)), \ + { log << BOOST_PP_SEQ_ELEM(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(args)),args); }) + /** \brief Enable block based on logging parameters This macro is like SENF_LOG, however instead of writing a simple message, this macro allows @@ -68,6 +72,10 @@ SENF_LOG_BLOCK_( SENF_LOG_MERGE_PARAMETERS(BOOST_PP_SEQ_POP_BACK(args)), \ BOOST_PP_SEQ_ELEM(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(args)),args)) +#define SENF_LOG_BLOCK_TPL(args) \ + SENF_LOG_BLOCK_( SENF_LOG_MERGE_PARAMETERS_TPL(BOOST_PP_SEQ_POP_BACK(args)), \ + BOOST_PP_SEQ_ELEM(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(args)),args)) + #define SENF_LOG_BLOCK_(parameters, block) \ do { \ if (parameters::compile_enabled && parameters::enabled()) { \ diff --git a/Utils/Logger/Parameters.ih b/Utils/Logger/Parameters.ih index 55d2abaa55b20a99b0d98cbee6b4c00c95d65003..882af7cdb182a2f349f3f3c35189e1888468e3a6 100644 --- a/Utils/Logger/Parameters.ih +++ b/Utils/Logger/Parameters.ih @@ -126,6 +126,11 @@ namespace detail { senf::log::detail::empty, \ (SENFLogDefaultStream)(SENFLogDefaultArea)(SENFLogDefaultLevel)args) > +#define SENF_LOG_MERGE_PARAMETERS_TPL(args) \ + senf::log::detail::Parameters< typename SENF_LOG_MERGE_PARAMETERS_I( \ + senf::log::detail::empty, \ + (SENFLogDefaultStream)(SENFLogDefaultArea)(SENFLogDefaultLevel)args) > + ///////////////////////////////ih.e//////////////////////////////////////// #endif