You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							110 lines
						
					
					
						
							3.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							110 lines
						
					
					
						
							3.8 KiB
						
					
					
				| 
 | |
| #include <log4cplus/logger.h> | |
| #include <log4cplus/loggingmacros.h> | |
| #include <log4cplus/configurator.h> | |
| #include <log4cplus/helpers/loglog.h> | |
| #include <log4cplus/helpers/stringhelper.h> | |
| #include <log4cplus/helpers/timehelper.h> | |
| #include <log4cplus/spi/loggingevent.h> | |
|  | |
| 
 | |
| using namespace std; | |
| using namespace log4cplus; | |
| using namespace log4cplus::helpers; | |
| 
 | |
| 
 | |
| log4cplus::tostream& operator <<(log4cplus::tostream& s, const Time& t) | |
| { | |
|     return s << t.sec() << "sec " << t.usec() << "usec"; | |
| } | |
| 
 | |
| 
 | |
| #define LOOP_COUNT 100000 | |
|  | |
| 
 | |
| int | |
| main() | |
| { | |
|     tcout << LOG4CPLUS_TEXT("Entering main()...") << endl; | |
|     PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT("log4cplus.properties")); | |
|     Logger root = Logger::getRoot(); | |
|     try { | |
|         Logger logger = Logger::getInstance(LOG4CPLUS_TEXT("testlogger")); | |
| 
 | |
|         LOG4CPLUS_WARN(Logger::getRoot (), "Starting test loop...."); | |
|         Time start = Time::gettimeofday(); | |
|         tstring msg(LOG4CPLUS_TEXT("This is a WARNING...")); | |
|         int i = 0; | |
|         for(i=0; i<LOOP_COUNT; ++i) { | |
|             LOG4CPLUS_WARN(logger, msg); | |
|         } | |
|         Time end = Time::gettimeofday(); | |
|         Time diff = end - start; | |
|         LOG4CPLUS_WARN(LOG4CPLUS_TEXT("root"), "Logging " << LOOP_COUNT << " took: " << diff << endl); | |
|         LOG4CPLUS_WARN(root, "Logging average: " << (diff/LOOP_COUNT) << endl); | |
| 
 | |
|         start = Time::gettimeofday(); | |
|         for(i=0; i<LOOP_COUNT; ++i) { | |
|             tostringstream buffer; | |
| 	        buffer /*<< "test"*/ << 123122; | |
| 	        tstring tmp = buffer.str(); | |
|         } | |
|         end = Time::gettimeofday(); | |
|         diff = end - start; | |
|         LOG4CPLUS_WARN(root, "tostringstream average: " << (diff/LOOP_COUNT) << endl); | |
| 
 | |
|         start = Time::gettimeofday(); | |
|         for(i=0; i<LOOP_COUNT; ++i) { | |
| 	    log4cplus::spi::InternalLoggingEvent e(logger.getName(), log4cplus::WARN_LOG_LEVEL, | |
| 			                         msg, 0, 0); | |
|         } | |
|         end = Time::gettimeofday(); | |
|         diff = end - start; | |
| 
 | |
|         LOG4CPLUS_WARN(root, "Creating log " << LOOP_COUNT << " objects took: " << diff); | |
|         LOG4CPLUS_WARN(root, "Creating log object average: " << (diff/LOOP_COUNT) << endl); | |
| 
 | |
|         start = Time::gettimeofday(); | |
|         for(i=0; i<LOOP_COUNT; ++i) { | |
| 	    log4cplus::spi::InternalLoggingEvent e(logger.getName(), log4cplus::WARN_LOG_LEVEL, | |
| 			                           msg, 0, 0); | |
| 	    e.getNDC(); | |
| 	    e.getThread(); | |
|         } | |
|         end = Time::gettimeofday(); | |
|         diff = end - start; | |
|         LOG4CPLUS_WARN(root, "Creating FULL log " << LOOP_COUNT << " objects took: " << diff); | |
|         LOG4CPLUS_WARN(root, "Creating FULL log object average: " << (diff/LOOP_COUNT) << endl); | |
|          | |
|         start = Time::gettimeofday(); | |
|         for(i=0; i<LOOP_COUNT; ++i) { | |
|             log4cplus::spi::InternalLoggingEvent e(logger.getName(), log4cplus::WARN_LOG_LEVEL, | |
| 			                           msg, 0, 0); | |
| 	    e.getNDC(); | |
|         } | |
|         end = Time::gettimeofday(); | |
|         diff = end - start; | |
|         LOG4CPLUS_WARN(root, "getNDC() " << LOOP_COUNT << " calls took: " << diff); | |
|         LOG4CPLUS_WARN(root, "getNDC() average: " << (diff/LOOP_COUNT) << endl); | |
|          | |
|         start = Time::gettimeofday(); | |
|         for(i=0; i<LOOP_COUNT; ++i) { | |
|             log4cplus::spi::InternalLoggingEvent e(logger.getName(), log4cplus::WARN_LOG_LEVEL, | |
| 			                           msg, 0, 0); | |
| 	    e.getThread(); | |
|         } | |
|         end = Time::gettimeofday(); | |
|         diff = end - start; | |
|         LOG4CPLUS_WARN(root, "getThread() " << LOOP_COUNT << " calls took: " << diff); | |
|         LOG4CPLUS_WARN(root, "getThread() average: " << (diff/LOOP_COUNT) << endl); | |
|     } | |
|     catch(...) { | |
|         tcout << LOG4CPLUS_TEXT("Exception...") << endl; | |
|         LOG4CPLUS_FATAL(root, "Exception occured..."); | |
|     } | |
| 
 | |
|     tcout << LOG4CPLUS_TEXT("Exiting main()...") << endl; | |
| 
 | |
|     log4cplus::Logger::shutdown(); | |
|     return 0; | |
| }
 |