X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FLogger%2FConfig.hh;h=34566b13f50d52a395a57f03045e788dc05ea712;hb=914aedddb62c3ca4fcabc881ad12b398a1c120f3;hp=6c1ae63b65525818a17931910b423de26b9e2af2;hpb=e57e1ec99a16261d1f436d1ea42f60dda6aae5cc;p=senf.git diff --git a/Utils/Logger/Config.hh b/Utils/Logger/Config.hh index 6c1ae63..34566b1 100644 --- a/Utils/Logger/Config.hh +++ b/Utils/Logger/Config.hh @@ -1,8 +1,8 @@ // $Id$ // -// Copyright (C) 2007 -// Fraunhofer Institute for Open Communication Systems (FOKUS) -// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Copyright (C) 2007 +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -46,7 +46,7 @@ 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. Message routing is managed - via the \ref Targets interface. + via the ::Target interface. \section config_compile Compile time configuration @@ -65,6 +65,18 @@ \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. + There are two standard uses for this configuration: Either to disable most logging in final + builds by changing the compile time limit to something like senf::log::IMPORTANT or to enable + senf::log::VERBOSE messages for some area: +
+    # Disable debug logging below 'IMPORTANT' level
+    g++ ... -DSENF_LOG_CONF="(( (senf)(log)(Debug), (_), IMPORTANT ))"
+
+    # Or enable verbose messages for the 'some::Area' area
+    g++ ... -DSENF_LOG_CONF="(( (senf)(log)(Verbose), (some)(Area), VERBOSE ))"
+    
+ + \see \ref SENF_LOG_CONF \section config_runtime Runtime configuration @@ -87,6 +99,8 @@ The routing statements are processed by the targets in order, the first matching rule will decide a log messages fate for that target. + + \section config_fallback Fallback routing There are two cases, where this setup may lead to inadvertently lost log messages: \li When using a library which does internally use the Logger but not initializing the logger in @@ -95,9 +109,9 @@ Since no route is set up in these cases, the messages will be dropped. To counter this problem, the logger is initially in fallback routing state. If any log - message arrives in this state, the message will be unconditionally logged to the console. The - first routing statement on any target will take the logger out of this state and normal routing - will take place. + message arrives in this state, the message will be logged to the console if it is above the + default runtime limit of it's stream. The first routing statement on any target will take the + logger out of this state and normal routing will take place. \see \ref senf::log::Target @@ -111,8 +125,8 @@ By default, the logging library will call gettimeofday() for each log message. To change the time source, just pass the new class or instance to senf::log::timeSource: \code - // Use senf::Scheduler::instance().eventTime() to time log messages - senf::log::timeSource(); + // Use senf::scheduler::eventTime() to time log messages + senf::log::timeSource(); \endcode */ @@ -138,7 +152,7 @@ namespace log { stream ::= \e scope_seq \n optional_area::= (_) | \e scope_seq \n level ::= \c VERBOSE | \c NOTICE | \c MESSAGE | \c IMPORTANT | \c CRITICAL | \c DISABLED \n - scope_seq ::= \e scope \e scope \e scope* \n + scope_seq ::= \e scope \e scope* \n scope ::= ( \e name ) \n name ::= arbitrary C++ identifier