X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FLogger%2FConfig.hh;h=ec23c7f688c3070ac424c62ad840a74682f93551;hb=345f95ca91ab48a8333fbdabb515b16e8d6d8a5d;hp=6c1ae63b65525818a17931910b423de26b9e2af2;hpb=e57e1ec99a16261d1f436d1ea42f60dda6aae5cc;p=senf.git diff --git a/Utils/Logger/Config.hh b/Utils/Logger/Config.hh index 6c1ae63..ec23c7f 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 @@ -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