better formatting for operators
This commit is contained in:
		@@ -9,6 +9,9 @@
 | 
			
		||||
    @license LGPL, see file <a href="license.html">COPYING</a>
 | 
			
		||||
 | 
			
		||||
    $Log$
 | 
			
		||||
    Revision 1.3  2005/04/14 19:12:18  marc
 | 
			
		||||
    better formatting for operators
 | 
			
		||||
 | 
			
		||||
    Revision 1.2  2005/04/07 20:42:38  marc
 | 
			
		||||
    renamed loggerhierarchy from mrw.gccfunctiontrace to mrw.fn
 | 
			
		||||
 | 
			
		||||
@@ -108,27 +111,7 @@ extern "C" int main(int, char**);
 | 
			
		||||
    necessary, because otherwise access the incompletely initialized
 | 
			
		||||
    MRW-C++ library itself may cause a crash.
 | 
			
		||||
 | 
			
		||||
    I use the following log4cxx @c log4cxx::PropertyConfigurator
 | 
			
		||||
    configuration in the test program to enable all function traces,
 | 
			
		||||
    except from some third party and standard libraries:
 | 
			
		||||
    
 | 
			
		||||
    @verbatim
 | 
			
		||||
log4j.rootLogger                            = OFF, A1
 | 
			
		||||
log4j.logger.mrw.fn                         = DEBUG, A1
 | 
			
		||||
log4j.logger.mrw.fn.log4cxx                 = OFF, A1
 | 
			
		||||
log4j.logger.mrw.fn.boost                   = OFF, A1
 | 
			
		||||
log4j.logger.mrw.fn.Thread                  = OFF, A1
 | 
			
		||||
log4j.logger.mrw.fn.mrw                     = OFF, A1
 | 
			
		||||
log4j.logger.mrw.fn.std                     = OFF, A1
 | 
			
		||||
log4j.logger.mrw.fn.new                     = OFF, A1
 | 
			
		||||
log4j.logger.mrw.fn.CppUnit                 = OFF, A1
 | 
			
		||||
log4j.logger.mrw.fn.__gnu_cxx               = OFF, A1
 | 
			
		||||
log4j.appender.A1                           = org.apache.log4j.FileAppender
 | 
			
		||||
log4j.appender.A1.layout                    = org.apache.log4j.PatternLayout
 | 
			
		||||
log4j.appender.A1.layout.ConversionPattern  = %t-%-41c%m%n
 | 
			
		||||
log4j.appender.A1.filename                  = filename.log
 | 
			
		||||
    @endverbatim
 | 
			
		||||
 | 
			
		||||
    A good default configuration is given in @ref AutoInitLog4cxx.
 | 
			
		||||
    Depending on your log4cxx configuration, a function trace may look
 | 
			
		||||
    e.g. like this (very simple configuration with very few additional
 | 
			
		||||
    information):
 | 
			
		||||
@@ -155,8 +138,10 @@ mrw.fn.anotherFunction                / anotherFunction()
 | 
			
		||||
    @note The configurator is not installed automatically. If you
 | 
			
		||||
          want to trace e.g. on the console, you have to call @c
 | 
			
		||||
          log4cxx::BasicConfigurator::configure(); as first statement
 | 
			
		||||
          in your @c main(). @see @ref AutoInitLog4cxx if you also want to
 | 
			
		||||
      automatically configure @c log4cxx.
 | 
			
		||||
          in your @c main().
 | 
			
		||||
 | 
			
		||||
    @see @ref AutoInitLog4cxx if you also want to automatically
 | 
			
		||||
         configure @c log4cxx.
 | 
			
		||||
 | 
			
		||||
    @section AutoFunctionTraceThread Multithreading
 | 
			
		||||
 | 
			
		||||
@@ -190,7 +175,9 @@ extern "C" void __cyg_profile_func_enter(void *this_fn, void*) {
 | 
			
		||||
           (p=hierarchy.find("::", p))!=std::string::npos;
 | 
			
		||||
           hierarchy.replace(p, 2, "."));
 | 
			
		||||
      hierarchy.erase(hierarchy.rfind('('));
 | 
			
		||||
      std::string::size_type p(hierarchy.rfind(' ', hierarchy.find('<')));
 | 
			
		||||
      std::string::size_type p
 | 
			
		||||
        (hierarchy.rfind(' ', std::min(hierarchy.find('<'),
 | 
			
		||||
                                       hierarchy.find("operator"))));
 | 
			
		||||
      if (p!=std::string::npos) hierarchy.erase(0, p+1);
 | 
			
		||||
      log4cxx::Logger* logger
 | 
			
		||||
        (log4cxx::Logger::getLogger(_T("mrw.fn.")+hierarchy));
 | 
			
		||||
@@ -223,7 +210,9 @@ extern "C" void __cyg_profile_func_exit(void *this_fn, void*) {
 | 
			
		||||
           (p=hierarchy.find("::", p))!=std::string::npos;
 | 
			
		||||
           hierarchy.replace(p, 2, "."));
 | 
			
		||||
      hierarchy.erase(hierarchy.find('('));
 | 
			
		||||
      std::string::size_type p(hierarchy.rfind(' ', hierarchy.find('<')));
 | 
			
		||||
      std::string::size_type p
 | 
			
		||||
        (hierarchy.rfind(' ', std::min(hierarchy.find('<'),
 | 
			
		||||
                                       hierarchy.find("operator"))));
 | 
			
		||||
      if (p!=std::string::npos) hierarchy.erase(0, p+1);
 | 
			
		||||
      log4cxx::Logger* logger
 | 
			
		||||
        (log4cxx::Logger::getLogger(_T("mrw.fn.")+hierarchy));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user