From: g0dil Date: Fri, 26 Oct 2007 22:35:32 +0000 (+0000) Subject: Bugfix: More template-logging fixes X-Git-Url: http://g0dil.de/git?a=commitdiff_plain;h=394a298567543441521439ad15f7016cd569c449;p=senf.git Bugfix: More template-logging fixes git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@477 270642c3-0616-0410-b53a-bc976706d245 --- diff --git a/PPI/DebugModules.hh b/PPI/DebugModules.hh index 58e52c6..67068d1 100644 --- a/PPI/DebugModules.hh +++ b/PPI/DebugModules.hh @@ -264,7 +264,7 @@ namespace debug { /** \brief Log received packets This module will log all packets sent to it's input using SENF_LOG to the given log - \a Stream, \a Area and \a level. + \a Stream, \a Area and \a Level. */ template < class Stream = log::Debug, class Area = log::DefaultArea, diff --git a/PPI/DebugModules.test.cc b/PPI/DebugModules.test.cc index 2010198..a5e5183 100644 --- a/PPI/DebugModules.test.cc +++ b/PPI/DebugModules.test.cc @@ -31,11 +31,6 @@ #include #include -#define _senf_LOG_STREAM logstream -namespace { - std::stringstream logstream; -} - #define SENF_LOG_CONF (( (senf)(log)(Debug), (_), VERBOSE )) #include "../Packets/Packets.hh" @@ -136,6 +131,9 @@ BOOST_AUTO_UNIT_TEST(activeFeederSink) BOOST_AUTO_UNIT_TEST(logSink) { + senf::log::StringTarget logTarget; + logTarget.route(); + debug::ActiveFeederSource source; debug::LogSink<> sink; @@ -144,8 +142,7 @@ BOOST_AUTO_UNIT_TEST(logSink) source.submit( senf::DataPacket::create(data) ); senf::ppi::run(); - BOOST_CHECK_EQUAL( logstream.str(), - " 0000 13 24 35 .$5\n\n" ); + BOOST_CHECK( ! logTarget.str().empty() ); } ///////////////////////////////cc.e//////////////////////////////////////// diff --git a/Utils/Logger/IOStreamTarget.hh b/Utils/Logger/IOStreamTarget.hh index 94f9999..745ee79 100644 --- a/Utils/Logger/IOStreamTarget.hh +++ b/Utils/Logger/IOStreamTarget.hh @@ -56,6 +56,9 @@ namespace log { \note This class will permanently and globally change the date formating of the given stream. + + \fixme Implement more robust formatting: Find line-breaks in the message and repeat the + prefix (with continuation markers) */ class IOStreamTarget : public Target diff --git a/Utils/Logger/Log.hh b/Utils/Logger/Log.hh index 53f0629..5c388fc 100644 --- a/Utils/Logger/Log.hh +++ b/Utils/Logger/Log.hh @@ -127,8 +127,8 @@ \hideinitializer */ #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)) + SENF_LOG_BLOCK_TPL_( SENF_LOG_MERGE_PARAMETERS_TPL(BOOST_PP_SEQ_POP_BACK(args)), \ + BOOST_PP_SEQ_ELEM(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(args)),args)) ///\} ///\} diff --git a/Utils/Logger/Log.ih b/Utils/Logger/Log.ih index 9e259c2..95c6020 100644 --- a/Utils/Logger/Log.ih +++ b/Utils/Logger/Log.ih @@ -40,6 +40,17 @@ } \ } while(0) +#define SENF_LOG_BLOCK_TPL_(parameters, block) \ + do { \ + if (parameters::compileEnabled && parameters::enabled()) { \ + std::stringstream log; \ + do block while(0); \ + senf::log::write(log.str()); \ + } \ + } while(0) + ///////////////////////////////ih.e//////////////////////////////////////// #endif diff --git a/Utils/Logger/Target.hh b/Utils/Logger/Target.hh index 9a47194..24b6ea3 100644 --- a/Utils/Logger/Target.hh +++ b/Utils/Logger/Target.hh @@ -50,6 +50,9 @@ namespace log { to a file, to mail them to the administrator or whatever. To this end, the logging target is passed the log message and a complete set of logging parameters (\e stream, \e area and \e level). + + \fixme optionally Integrate with Scheduler / ClockService to reduce number of gettimeofday() + calls. */ class Target : private boost::noncopyable {