mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
Added log rotation functionality.
This is to prevent log files from ever exceeding a limit of 1MB each. Only the current and one other log file are kept, giving hopefully enough history for any neccessary debugging.
This commit is contained in:
parent
286cea1629
commit
93991368c6
24
src/main.cpp
24
src/main.cpp
|
@ -32,6 +32,7 @@
|
||||||
#include <QCommandLineParser>
|
#include <QCommandLineParser>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QDir>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QFontDatabase>
|
#include <QFontDatabase>
|
||||||
#include <QMutexLocker>
|
#include <QMutexLocker>
|
||||||
|
@ -127,8 +128,27 @@ int main(int argc, char *argv[])
|
||||||
sodium_init(); // For the auto-updater
|
sodium_init(); // For the auto-updater
|
||||||
|
|
||||||
#ifdef LOG_TO_FILE
|
#ifdef LOG_TO_FILE
|
||||||
|
QString logFileDir = Settings::getInstance().getSettingsDirPath();
|
||||||
logFileStream.reset(new QTextStream);
|
logFileStream.reset(new QTextStream);
|
||||||
logFileFile.reset(new QFile(Settings::getInstance().getSettingsDirPath()+"qtox.log"));
|
logFileFile.reset(new QFile(logFileDir + "qtox.log"));
|
||||||
|
|
||||||
|
// Trim log file if over 1MB
|
||||||
|
if (logFileFile->size() > 1000000) {
|
||||||
|
qDebug() << "Log file over 1MB, rotating...";
|
||||||
|
|
||||||
|
QDir dir (logFileDir);
|
||||||
|
|
||||||
|
// Check if log.1 already exists, and if so, delete it
|
||||||
|
if (dir.exists(logFileDir + "qtox.log.1")) {
|
||||||
|
dir.remove("qtox.log.1");
|
||||||
|
}
|
||||||
|
|
||||||
|
dir.rename("qtox.log", "qtox.log.1");
|
||||||
|
|
||||||
|
// Return to original log file path
|
||||||
|
logFileFile->setFileName(logFileDir + "qtox.log");
|
||||||
|
}
|
||||||
|
|
||||||
if (logFileFile->open(QIODevice::Append))
|
if (logFileFile->open(QIODevice::Append))
|
||||||
{
|
{
|
||||||
logFileStream->setDevice(logFileFile.get());
|
logFileStream->setDevice(logFileFile.get());
|
||||||
|
@ -247,6 +267,6 @@ int main(int argc, char *argv[])
|
||||||
Nexus::destroyInstance();
|
Nexus::destroyInstance();
|
||||||
CameraSource::destroyInstance();
|
CameraSource::destroyInstance();
|
||||||
Settings::destroyInstance();
|
Settings::destroyInstance();
|
||||||
qDebug() << "Clean exit with status"<<errorcode;
|
qDebug() << "Clean exit with status" << errorcode;
|
||||||
return errorcode;
|
return errorcode;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user