mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-17 13:19:25 -04:00
Logging: alternate file logger constructor with settings as a simple structure
This commit is contained in:
+57
-2
@@ -19,6 +19,18 @@ using namespace qtwebapp;
|
||||
void FileLogger::refreshSettings()
|
||||
{
|
||||
mutex.lock();
|
||||
|
||||
if (useQtSettings) {
|
||||
refreshQtSettings();
|
||||
} else {
|
||||
refreshFileLogSettings();
|
||||
}
|
||||
|
||||
mutex.unlock();
|
||||
}
|
||||
|
||||
void FileLogger::refreshQtSettings()
|
||||
{
|
||||
// Save old file name for later comparision with new settings
|
||||
QString oldFileName=fileName;
|
||||
|
||||
@@ -49,12 +61,41 @@ void FileLogger::refreshSettings()
|
||||
close();
|
||||
open();
|
||||
}
|
||||
mutex.unlock();
|
||||
}
|
||||
|
||||
void FileLogger::refreshFileLogSettings()
|
||||
{
|
||||
// Save old file name for later comparision with new settings
|
||||
QString oldFileName = fileLoggerSettings.fileName;
|
||||
|
||||
// Load new config settings
|
||||
|
||||
fileName = fileLoggerSettings.fileName;
|
||||
|
||||
// Convert relative fileName to absolute, based on the current working directory
|
||||
if (QDir::isRelativePath(fileName))
|
||||
{
|
||||
fileName = QFileInfo(QDir::currentPath(), fileName).absoluteFilePath();
|
||||
}
|
||||
|
||||
maxSize = fileLoggerSettings.maxSize;
|
||||
maxBackups = fileLoggerSettings.maxBackups;
|
||||
msgFormat = fileLoggerSettings.msgFormat;
|
||||
timestampFormat = fileLoggerSettings.timestampFormat;
|
||||
minLevel = fileLoggerSettings.minLevel;
|
||||
bufferSize = fileLoggerSettings.bufferSize;
|
||||
|
||||
// Create new file if the filename has been changed
|
||||
if (oldFileName != fileName)
|
||||
{
|
||||
fprintf(stderr,"Logging to %s\n",qPrintable(fileName));
|
||||
close();
|
||||
open();
|
||||
}
|
||||
}
|
||||
|
||||
FileLogger::FileLogger(QSettings* settings, const int refreshInterval, QObject* parent)
|
||||
: Logger(parent)
|
||||
: Logger(parent), useQtSettings(true)
|
||||
{
|
||||
Q_ASSERT(settings!=0);
|
||||
Q_ASSERT(refreshInterval>=0);
|
||||
@@ -68,6 +109,20 @@ FileLogger::FileLogger(QSettings* settings, const int refreshInterval, QObject*
|
||||
refreshSettings();
|
||||
}
|
||||
|
||||
FileLogger::FileLogger(const FileLoggerSettings& settings, const int refreshInterval, QObject* parent)
|
||||
: Logger(parent), useQtSettings(false)
|
||||
{
|
||||
Q_ASSERT(refreshInterval>=0);
|
||||
fileLoggerSettings = settings;
|
||||
file=0;
|
||||
if (refreshInterval>0)
|
||||
{
|
||||
refreshTimer.start(refreshInterval,this);
|
||||
}
|
||||
flushTimer.start(1000,this);
|
||||
refreshSettings();
|
||||
}
|
||||
|
||||
|
||||
FileLogger::~FileLogger()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user