| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- #pragma once
 
- #include "CConsoleHandler.h"
 
- /*
 
-  * CLogger.h, 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
 
-  *
 
-  */
 
- extern DLL_LINKAGE std::ostream *logfile;
 
- extern DLL_LINKAGE CConsoleHandler *console;
 
- // CLogger, prints log info to console and saves in file
 
- class DLL_LINKAGE CLogger
 
- {
 
- 	const int lvl;
 
- #ifdef ANDROID
 
- 	std::ostringstream buf;
 
- 	int androidloglevel;
 
- 	void outputAndroid();
 
- #endif
 
- public:
 
- 	static const int CONSOLE_LOGGING_LEVEL;
 
- 	static const int FILE_LOGGING_LEVEL;
 
- 	
 
- 	CLogger& operator<<(std::ostream& (*fun)(std::ostream&));
 
- 	template<typename T> 
 
- 	CLogger & operator<<(const T & data)
 
- 	{
 
- #ifdef ANDROID
 
- 		buf << data;
 
- 		outputAndroid();
 
- #else
 
- 		if(lvl < CLogger::CONSOLE_LOGGING_LEVEL)
 
- 		{
 
- 			if(console)
 
- 				console->print(data, lvl);
 
- 			else
 
- 				std::cout << data << std::flush;
 
- 		}
 
- 		if((lvl < CLogger::FILE_LOGGING_LEVEL) && logfile)
 
- 			*logfile << data << std::flush;
 
- #endif
 
- 		return *this;
 
- 	}
 
- 	CLogger(const int Lvl);
 
- };
 
- extern DLL_LINKAGE CLogger tlog0; //green - standard progress info
 
- extern DLL_LINKAGE CLogger tlog1; //red - big errors
 
- extern DLL_LINKAGE CLogger tlog2; //magenta - major warnings
 
- extern DLL_LINKAGE CLogger tlog3; //yellow - minor warnings
 
- extern DLL_LINKAGE CLogger tlog4; //white - detailed log info
 
- extern DLL_LINKAGE CLogger tlog5; //gray - minor log info
 
- extern DLL_LINKAGE CLogger tlog6; //teal - AI info
 
 
  |