21 #define _CRT_SECURE_NO_WARNINGS 26 #include "CrossPlatform.h" 55 std::ostringstream&
get(SeverityLevel level = LOG_INFO);
57 static SeverityLevel& reportingLevel();
58 static std::string& logFile();
59 static std::string toString(SeverityLevel level);
61 std::ostringstream os;
66 inline Logger::Logger()
70 inline std::ostringstream& Logger::get(SeverityLevel level)
72 os <<
"[" << toString(level) <<
"]" <<
"\t";
76 inline Logger::~Logger()
79 std::ostringstream ss;
81 FILE *file = fopen(logFile().c_str(),
"a");
84 fprintf(file,
"%s", ss.str().c_str());
88 if (!file || reportingLevel() == LOG_DEBUG || reportingLevel() == LOG_VERBOSE)
90 fprintf(stderr,
"%s", os.str().c_str());
95 inline SeverityLevel& Logger::reportingLevel()
97 static SeverityLevel reportingLevel = LOG_DEBUG;
98 return reportingLevel;
101 inline std::string& Logger::logFile()
103 static std::string logFile =
"openxcom.log";
107 inline std::string Logger::toString(SeverityLevel level)
109 static const char*
const buffer[] = {
"FATAL",
"ERROR",
"WARN",
"INFO",
"DEBUG",
"VERB"};
110 return buffer[level];
114 if (level > Logger::reportingLevel()) ; \ 115 else Logger().get(level) A basic logging and debugging class, prints output to stdout/files.
Definition: Logger.h:50
Definition: BaseInfoState.cpp:40