Gather logs for sending or collecting.
--HG-- branch : develop
This commit is contained in:
parent
a25fe5dc2b
commit
1056f063b6
|
@ -2130,6 +2130,63 @@ void VApplication::ClearOldReports() const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VApplication::GatherLogs() const
|
||||||
|
{
|
||||||
|
QTextStream *out = nullptr;
|
||||||
|
QFile *log = new QFile(QString("%1/valentina.log").arg(LogDirPath()));
|
||||||
|
if (log->open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text))
|
||||||
|
{
|
||||||
|
out = new QTextStream(log);
|
||||||
|
|
||||||
|
QStringList filters{"*.log"};
|
||||||
|
QDir logsDir(LogDirPath());
|
||||||
|
logsDir.setNameFilters(filters);
|
||||||
|
logsDir.setCurrent(LogDirPath());
|
||||||
|
|
||||||
|
const QStringList allFiles = logsDir.entryList(QDir::NoDotAndDotDot | QDir::Files);
|
||||||
|
if (allFiles.isEmpty() == false)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < allFiles.size(); ++i)
|
||||||
|
{
|
||||||
|
QFileInfo info(allFiles.at(i));
|
||||||
|
if (info.fileName() == "valentina.log")
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
QLockFile *logLock = new QLockFile(info.absoluteFilePath()+".lock");
|
||||||
|
logLock->setStaleLockTime(0);
|
||||||
|
if (logLock->tryLock())
|
||||||
|
{
|
||||||
|
*out <<"--------------------------" << endl;
|
||||||
|
QFile logFile(info.absoluteFilePath());
|
||||||
|
if (logFile.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||||
|
{
|
||||||
|
QTextStream in(&logFile);
|
||||||
|
while (!in.atEnd())
|
||||||
|
{
|
||||||
|
*out << in.readLine() << endl;
|
||||||
|
}
|
||||||
|
logFile.close();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*out << "Log file error:" + logFile.errorString() << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete logLock;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*out << "Could not find logs.";
|
||||||
|
}
|
||||||
|
log->close();
|
||||||
|
}
|
||||||
|
delete out;
|
||||||
|
delete log;
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
// Catch exception and create report. Use if program build with Mingw compiler.
|
// Catch exception and create report. Use if program build with Mingw compiler.
|
||||||
// See more about catcher https://github.com/jrfonseca/drmingw/blob/master/README.md
|
// See more about catcher https://github.com/jrfonseca/drmingw/blob/master/README.md
|
||||||
|
@ -2188,7 +2245,8 @@ void VApplication::CollectReport(const QString &reportName) const
|
||||||
reportFile.remove(); // Clear after yourself
|
reportFile.remove(); // Clear after yourself
|
||||||
|
|
||||||
filename = QString("%1/reports/log-%2.log").arg(qApp->applicationDirPath()).arg(timestamp);
|
filename = QString("%1/reports/log-%2.log").arg(qApp->applicationDirPath()).arg(timestamp);
|
||||||
QFile logFile(LogPath());
|
GatherLogs();
|
||||||
|
QFile logFile(QString("%1/valentina.log").arg(LogDirPath()));
|
||||||
logFile.copy(filename); // Collect log
|
logFile.copy(filename); // Collect log
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2248,7 +2306,8 @@ void VApplication::SendReport(const QString &reportName) const
|
||||||
content.append(QString("\r\n-------------------------------\r\n"));
|
content.append(QString("\r\n-------------------------------\r\n"));
|
||||||
content.append(QString("Log:")+"\r\n");
|
content.append(QString("Log:")+"\r\n");
|
||||||
|
|
||||||
QFile logFile(LogPath());
|
GatherLogs();
|
||||||
|
QFile logFile(QString("%1/valentina.log").arg(LogDirPath()));
|
||||||
if (logFile.open(QIODevice::ReadOnly | QIODevice::Text))
|
if (logFile.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||||
{
|
{
|
||||||
content.append(ReadFileForSending(logFile));
|
content.append(ReadFileForSending(logFile));
|
||||||
|
|
|
@ -183,6 +183,7 @@ private:
|
||||||
void SendReport(const QString &reportName) const;
|
void SendReport(const QString &reportName) const;
|
||||||
QString ReadFileForSending(QFile &file)const;
|
QString ReadFileForSending(QFile &file)const;
|
||||||
void ClearOldReports()const;
|
void ClearOldReports()const;
|
||||||
|
void GatherLogs()const;
|
||||||
#endif // defined(Q_OS_WIN) && defined(Q_CC_GNU)
|
#endif // defined(Q_OS_WIN) && defined(Q_CC_GNU)
|
||||||
|
|
||||||
QString LogDirPath()const;
|
QString LogDirPath()const;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user