Improve logging part in tutorial, and make clear distinction between logging level and logging macro.
authorVedran Miletić <rivanvx@gmail.com>
Sun, 07 Oct 2012 14:37:05 +0200
changeset 9104 5de0d2c78514
parent 9103 ad9836bb8e92
child 9105 760da66d6f5c
Improve logging part in tutorial, and make clear distinction between logging level and logging macro.
doc/tutorial/source/tweaking.rst
--- a/doc/tutorial/source/tweaking.rst	Sat Oct 06 21:36:39 2012 +0200
+++ b/doc/tutorial/source/tweaking.rst	Sun Oct 07 14:37:05 2012 +0200
@@ -37,18 +37,32 @@
 There are currently seven levels of log messages of increasing verbosity
 defined in the system.  
 
-* NS_LOG_ERROR --- Log error messages;
-* NS_LOG_WARN --- Log warning messages;
-* NS_LOG_DEBUG --- Log relatively rare, ad-hoc debugging messages;
-* NS_LOG_INFO --- Log informational messages about program progress;
-* NS_LOG_FUNCTION --- Log a message describing each function called;
-* NS_LOG_LOGIC -- Log messages describing logical flow within a function;
-* NS_LOG_ALL --- Log everything.
+* LOG_ERROR --- Log error messages (associated macro: NS_LOG_ERROR);
+* LOG_WARN --- Log warning messages (associated macro: NS_LOG_WARN);
+* LOG_DEBUG --- Log relatively rare, ad-hoc debugging messages
+  (associated macro: NS_LOG_DEBUG);
+* LOG_INFO --- Log informational messages about program progress
+  (associated macro: NS_LOG_INFO);
+* LOG_FUNCTION --- Log a message describing each function called
+  (two associated macros: NS_LOG_FUNCTION, used for member functions,
+  and NS_LOG_FUNCTION_NOARGS, used for static functions);
+* LOG_LOGIC -- Log messages describing logical flow within a function
+  (associated macro: NS_LOG_LOGIC);
+* LOG_ALL --- Log everything mentioned above (no associated macro).
 
-We also provide an unconditional logging level that is always displayed,
+For each LOG_TYPE there is also LOG_LEVEL_TYPE that, if used, enables
+logging of all the levels above it in addition to it's level.  (As a
+consequence of this, LOG_ERROR and LOG_LEVEL_ERROR and also LOG_ALL
+and LOG_LEVEL_ALL are functionally equivalent.)  For example,
+enabling LOG_INFO will only enable messages provided by NS_LOG_INFO macro,
+while enabling LOG_LEVEL_INFO will also enable messages provided by
+NS_LOG_DEBUG, NS_LOG_WARN and NS_LOG_ERROR macros.  
+
+We also provide an unconditional logging macro that is always displayed,
 irrespective of logging levels or component selection.
 
-*  NS_LOG_UNCOND -- Log the associated message unconditionally.
+* NS_LOG_UNCOND -- Log the associated message unconditionally (no associated
+  log level).
 
 Each level can be requested singly or cumulatively; and logging can be set 
 up using a shell environment variable (NS_LOG) or by logging system function 
@@ -143,10 +157,12 @@
 
 The additional debug information provided by the application is from
 the NS_LOG_FUNCTION level.  This shows every time a function in the application
-is called during script execution.  Note that there are no requirements in the
-|ns3| system that models must support any particular logging 
-functionality.  The decision regarding how much information is logged
-is left to the individual model developer.  In the case of the echo 
+is called during script execution.  Generally, use of (at least)
+NS_LOG_FUNCTION(this) in member functions is preferred. Use
+NS_LOG_FUNCTION_NOARGS() only in static functions.  Note, however, that there
+are no requirements in the |ns3| system that models must support any particular
+logging  functionality.  The decision regarding how much information is logged
+is left to the individual model developer.  In the case of the echo
 applications, a good deal of log output is available.
 
 You can now see a log of the function calls that were made to the application.