X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FLogger%2FConfig.hh;h=8e0eda33fa4e449faf69b387e27c7e7eff16d9eb;hb=28275a1a9075ae42dc29aaadc5bc78e6fa204e26;hp=a9bf7c7a49ce12ec6c2b12d168a2b2f19e640835;hpb=61419d9a2e1060f7ede22fa19fd9d0b401bbc87a;p=senf.git diff --git a/Utils/Logger/Config.hh b/Utils/Logger/Config.hh index a9bf7c7..8e0eda3 100644 --- a/Utils/Logger/Config.hh +++ b/Utils/Logger/Config.hh @@ -45,7 +45,75 @@ Runtime configuration on the other hand deals with routing all those messages, which are enabled at compile time to the logging targets. If a message is not routed, it will be - discarded. This allows to additionally disable messages at run-time. + discarded. This allows to additionally disable messages at run-time. Message routing is managed + via the \ref Target interface. + + \section config_compile Compile time configuration + + Compile time configuration is set on the compiler command line: +
+ g++ ... -DSENF_LOG_CONF="(( (senf)(log)(Debug),(_),DISABLED )) + (( (senf)(log)(Debug),(foo)(SomeClass),VERBOSE )) + (( (foo)(Transactions),(_),NOTICE ))" ... ++ The value is relatively complex; It's a Boost.Preprocessor style sequence of tuples, of which + the first and second elements are again sequences. What this boils down to, is that it allows to + configure compile time logging limits based on stream and optional area. + + The above example disables all debug logging by setting the default log limit for all areas on + the \c senf::log::Debug stream to \c DISABLED. It then re-enables debug logging only within the + \c foo::SomeClass area, where it is set to \c VERBOSE. Furthermore, the limit on the \c + foo::Transactions stream is set to \c NOTICE. + + \see \ref SENF_LOG_CONF + + \section config_runtime Runtime configuration + + The runtime configuration is performed by routing messages to one or more logging targets: + \code + senf::log::ConsoleLog & consoleLog (senf::log::ConsoleLog::instance()); + senf::log::FileLog fileLog ("my.log"); + + consoleLog.route
- g++ ... -DSENF_LOG_CONF="(( (senf)(log)(Debug),(_),DISABLED )) - (( (senf)(log)(Debug),(foo)(SomeClass),(VERBOSE) )) - (( (foo)(Transactions),(_),NOTICE ))" ... -- (As this option can get quite long, you might want to use the '-imacros' option instead) + be set on the compiler command line. The formal syntax of this option is: @@ -118,7 +180,7 @@ namespace log { struct Enabled { static const bool value = ( - (Level::value == senf::log::NONE::value ? Stream::defaultLevel::value : Level::value) + (Level::value == NONE::value ? Stream::defaultLevel::value : Level::value) >= detail::Config