1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-09 01:56:05 -05:00
sdrangel/logging/loggerwithfile.cpp
2017-11-18 20:07:53 +01:00

122 lines
2.6 KiB
C++

/*
* loggerwithfile.cpp
*
* Created on: Nov 11, 2017
* Author: f4exb
*/
#include "loggerwithfile.h"
using namespace qtwebapp;
LoggerWithFile::LoggerWithFile(QObject* parent)
:Logger(parent), fileLogger(0), useFileFlogger(false)
{
consoleLogger = new Logger(this);
}
LoggerWithFile::~LoggerWithFile()
{
destroyFileLogger();
delete consoleLogger;
}
void LoggerWithFile::createOrSetFileLogger(const FileLoggerSettings& settings, const int refreshInterval)
{
if (!fileLogger) {
fileLogger = new FileLogger(settings, refreshInterval, this);
} else {
fileLogger->setFileLoggerSettings(settings);
}
}
void LoggerWithFile::destroyFileLogger()
{
if (fileLogger)
{
delete fileLogger;
fileLogger = 0;
}
}
void LoggerWithFile::log(const QtMsgType type, const QString& message, const QString &file, const QString &function, const int line)
{
consoleLogger->log(type,message,file,function,line);
if (fileLogger && useFileFlogger) {
fileLogger->log(type,message,file,function,line);
}
}
void LoggerWithFile::clear(const bool buffer, const bool variables)
{
consoleLogger->clear(buffer,variables);
if (fileLogger && useFileFlogger) {
fileLogger->clear(buffer,variables);
}
}
void LoggerWithFile::setConsoleMinMessageLevel(const QtMsgType& msgLevel)
{
consoleLogger->setMinMessageLevel(msgLevel);
}
void LoggerWithFile::setFileMinMessageLevel(const QtMsgType& msgLevel)
{
if (fileLogger) {
fileLogger->setMinMessageLevel(msgLevel);
}
}
void LoggerWithFile::getConsoleMinMessageLevelStr(QString& levelStr)
{
switch (consoleLogger->getMinMessageLevel())
{
case QtDebugMsg:
levelStr = "debug";
break;
case QtInfoMsg:
levelStr = "info";
break;
case QtWarningMsg:
levelStr = "warning";
break;
case QtCriticalMsg:
case QtFatalMsg:
levelStr = "error";
break;
default:
levelStr = "debug";
break;
}
}
void LoggerWithFile::getFileMinMessageLevelStr(QString& levelStr)
{
switch (fileLogger->getMinMessageLevel())
{
case QtDebugMsg:
levelStr = "debug";
break;
case QtInfoMsg:
levelStr = "info";
break;
case QtWarningMsg:
levelStr = "warning";
break;
case QtCriticalMsg:
case QtFatalMsg:
levelStr = "error";
break;
default:
levelStr = "debug";
break;
}
}
void LoggerWithFile::getLogFileName(QString& fileName)
{
fileName = fileLogger->getFileLoggerSettings().fileName;
}