refactor: 日志文件直接存整个软件的日志

This commit is contained in:
Chenx Dust
2026-08-03 22:25:32 +08:00
parent 05bb43cc76
commit dccb7a2874
14 changed files with 196 additions and 167 deletions

View File

@@ -0,0 +1,59 @@
#include <QCoreApplication>
#include <QDebug>
#include <QFile>
#include <QTemporaryDir>
#include "infrastructure/logging/applicationlogfile.h"
namespace
{
bool writesApplicationLogEntries()
{
QTemporaryDir temporaryDirectory;
if (!temporaryDirectory.isValid())
{
qCritical() << "Unable to create temporary directory";
return false;
}
const QString logPath = temporaryDirectory.filePath("core.log");
{
ApplicationLogFile logFile(logPath);
if (!logFile.isOpen() || logFile.filePath() != logPath)
{
qCritical() << "Application log file did not open the requested path";
return false;
}
logFile.appendEntry("[INFO] application event");
logFile.appendEntry("[CORE] standard output\n[CORE] continued standard output");
}
QFile logFile(logPath);
if (!logFile.open(QIODevice::ReadOnly | QIODevice::Text))
{
qCritical() << "Unable to read generated application log";
return false;
}
const QString contents = QString::fromUtf8(logFile.readAll());
if (!contents.contains("=== Log started at ")
|| !contents.contains(" with LogFileTest 1.0 ===\n")
|| !contents.contains("[INFO] application event\n")
|| !contents.contains("[CORE] standard output\n[CORE] continued standard output\n")
|| !contents.contains("=== Log ended at "))
{
qCritical().noquote() << "writesApplicationLogEntries failed:\n" << contents;
return false;
}
return true;
}
}
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QCoreApplication::setApplicationName("LogFileTest");
QCoreApplication::setApplicationVersion("1.0");
return writesApplicationLogEntries() ? 0 : 1;
}