X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FLogger%2FConfig.hh;h=ec23c7f688c3070ac424c62ad840a74682f93551;hb=2400f5c9d91e715773ed965fb92da1b6a54903e5;hp=ac51c7ae8d42b3bd6d71f4dd0373047713a5cfdc;hpb=a1a6c76a214ad1935032826713cabaf9ac57bf07;p=senf.git diff --git a/Utils/Logger/Config.hh b/Utils/Logger/Config.hh index ac51c7a..ec23c7f 100644 --- a/Utils/Logger/Config.hh +++ b/Utils/Logger/Config.hh @@ -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 @@ -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