mirror of
https://github.com/edubart/otclient.git
synced 2025-10-19 05:53:26 +02:00
crash handler, logger and oengles changes
* save log messages to otclient.txt * fixes in FrameBuffer and HardwareBuffer to work with OpenGLES * possibility to get compilation information from lua (compiler version, build date, build revision, build type) * make crash handler more informatave * handle assert crash signals (SIGABRT)
This commit is contained in:
@@ -37,6 +37,11 @@ void Logger::log(Fw::LogLevel level, const std::string& message)
|
||||
std::string outmsg = logPrefixes[level] + message;
|
||||
std::cout << outmsg << std::endl;
|
||||
|
||||
if(m_outFile.good()) {
|
||||
m_outFile << outmsg << std::endl;
|
||||
m_outFile.flush();
|
||||
}
|
||||
|
||||
std::size_t now = std::time(NULL);
|
||||
m_logMessages.push_back(LogMessage(level, outmsg, now));
|
||||
|
||||
@@ -72,3 +77,15 @@ void Logger::fireOldMessages()
|
||||
m_onLog(logMessage.level, logMessage.message, logMessage.when);
|
||||
}
|
||||
}
|
||||
|
||||
void Logger::setLogFile(const std::string& file)
|
||||
{
|
||||
m_outFile.open(file.c_str(), std::ios::out | std::ios::app);
|
||||
if(!m_outFile.is_open() || !m_outFile.good()) {
|
||||
logError("Unable to save log to '", file, "'");
|
||||
return;
|
||||
}
|
||||
|
||||
m_outFile << "\n== application started at " << Fw::dateTimeString() << std::endl;
|
||||
m_outFile.flush();
|
||||
}
|
||||
|
@@ -41,11 +41,13 @@ public:
|
||||
void logFunc(Fw::LogLevel level, const std::string& message, std::string prettyFunction);
|
||||
|
||||
void fireOldMessages();
|
||||
void setLogFile(const std::string& file);
|
||||
void setOnLog(const OnLogCallback& onLog) { m_onLog = onLog; }
|
||||
|
||||
private:
|
||||
std::list<LogMessage> m_logMessages;
|
||||
OnLogCallback m_onLog;
|
||||
std::ofstream m_outFile;
|
||||
};
|
||||
|
||||
extern Logger g_logger;
|
||||
|
Reference in New Issue
Block a user