| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | 
							- #include "StdInc.h"
 
- #include "CLogger.h"
 
- /*
 
-  * CLogger.cpp, part of VCMI engine
 
-  *
 
-  * Authors: listed in file AUTHORS in main folder
 
-  *
 
-  * License: GNU General Public License v2.0 or later
 
-  * Full text of license available in license.txt file, in main folder
 
-  *
 
-  */
 
- // Console, file definitions
 
- DLL_LINKAGE CConsoleHandler *console = NULL;
 
- DLL_LINKAGE std::ostream *logfile = NULL;
 
- // CLogger definitions
 
- DLL_LINKAGE CLogger tlog0(0);
 
- DLL_LINKAGE CLogger tlog1(1);
 
- DLL_LINKAGE CLogger tlog2(2);
 
- DLL_LINKAGE CLogger tlog3(3);
 
- DLL_LINKAGE CLogger tlog4(4);
 
- DLL_LINKAGE CLogger tlog5(5);
 
- DLL_LINKAGE CLogger tlog6(-2);
 
- // Logging level settings
 
- const int CLogger::CONSOLE_LOGGING_LEVEL = 5;
 
- const int CLogger::FILE_LOGGING_LEVEL = 6;
 
- CLogger::CLogger(const int Lvl) : lvl(Lvl)
 
- {
 
- #ifdef ANDROID
 
- 	androidloglevel = ANDROID_LOG_INFO;
 
- 	switch(lvl) {
 
- case 0: androidloglevel = ANDROID_LOG_INFO; break;
 
- case 1: androidloglevel = ANDROID_LOG_FATAL; break;
 
- case 2: androidloglevel = ANDROID_LOG_ERROR; break;
 
- case 3: androidloglevel = ANDROID_LOG_WARN; break;
 
- case 4: androidloglevel = ANDROID_LOG_INFO; break;
 
- case 5: androidloglevel = ANDROID_LOG_DEBUG; break;
 
- case 6: case -2: androidloglevel = ANDROID_LOG_VERBOSE; break;
 
- 	}
 
- #endif
 
- }
 
- #ifdef ANDROID
 
- void CLogger::outputAndroid()
 
- {
 
- 	int pos = buf.str().find("\n");
 
- 	while( pos >= 0 )
 
- 	{
 
- 		__android_log_print(androidloglevel, "VCMI", "%s", buf.str().substr(0, pos).c_str() );
 
- 		buf.str( buf.str().substr(pos+1) );
 
- 		pos = buf.str().find("\n");
 
- 	}
 
- }
 
- #endif
 
- CLogger& CLogger::operator<<(std::ostream& (*fun)(std::ostream&))
 
- {
 
- #ifdef ANDROID
 
- 	buf << fun;
 
- 	outputAndroid();
 
- #else
 
- 	if(lvl < CLogger::CONSOLE_LOGGING_LEVEL)
 
- 		std::cout << fun;
 
- 	if((lvl < CLogger::FILE_LOGGING_LEVEL) && logfile)
 
- 		*logfile << fun;
 
- #endif
 
- 	return *this;
 
- }
 
 
  |