diff options
author | Tobias Hunger <tobias.hunger@digia.com> | 2012-11-27 15:43:11 +0100 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2012-11-29 14:44:39 +0100 |
commit | 29b924ed092ea6b0381fa5f731e9eb5f690a1878 (patch) | |
tree | cf2f188f3e609b7d8e38b04a0ebb87ebbf768930 | |
parent | e7d709fb1365478ab8a3cf93d5be5a197d28ec54 (diff) |
Allow for reuse of log level strings
Change-Id: I6b301b7fcd1c95aee6417c1db2bdcb35ed88d97c
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-rw-r--r-- | src/app/shared/commandlineparser.cpp | 32 | ||||
-rw-r--r-- | src/lib/logging/consolelogger.cpp | 21 | ||||
-rw-r--r-- | src/lib/logging/logger.cpp | 27 | ||||
-rw-r--r-- | src/lib/logging/logger.h | 2 |
4 files changed, 48 insertions, 34 deletions
diff --git a/src/app/shared/commandlineparser.cpp b/src/app/shared/commandlineparser.cpp index 5ea8686a9..ba68c1062 100644 --- a/src/app/shared/commandlineparser.cpp +++ b/src/app/shared/commandlineparser.cpp @@ -46,25 +46,12 @@ namespace qbs { -static QString logLevelToString(LoggerLevel level) -{ - switch (level) { - case LoggerError: return QLatin1String("error"); - case LoggerWarning: return QLatin1String("warning"); - case LoggerInfo: return QLatin1String("info"); - case LoggerDebug: return QLatin1String("debug"); - case LoggerTrace: return QLatin1String("trace"); - default: qFatal("%s: Missing case in switch statement", Q_FUNC_INFO); - } - return QString(); // Never reached. -} - static LoggerLevel logLevelFromString(const QString &logLevelString) { const QList<LoggerLevel> levels = QList<LoggerLevel>() << LoggerError << LoggerWarning << LoggerInfo << LoggerDebug << LoggerTrace; foreach (LoggerLevel l, levels) { - if (logLevelToString(l) == logLevelString) + if (Logger::logLevelName(l) == logLevelString) return l; } throw Error(CommandLineParser::tr("Invalid log level '%1'.").arg(logLevelString)); @@ -72,9 +59,10 @@ static LoggerLevel logLevelFromString(const QString &logLevelString) static QStringList allLogLevelStrings() { - return QStringList() << logLevelToString(LoggerError) << logLevelToString(LoggerWarning) - << logLevelToString(LoggerInfo) << logLevelToString(LoggerDebug) - << logLevelToString(LoggerTrace); + QStringList result; + for (int i = static_cast<int>(LoggerMinLevel); i <= static_cast<int>(LoggerMaxLevel); ++i) + result << Logger::logLevelName(static_cast<LoggerLevel>(i)); + return result; } CommandLineParser::CommandLineParser() @@ -121,9 +109,9 @@ void CommandLineParser::printHelp() const " .............. Use the specified log level. Possible values are \"%1\".\n" " The default is \"%2\".\n") .arg(allLogLevelStrings().join(QLatin1String("\", \"")), - logLevelToString(Logger::defaultLevel()) + Logger::logLevelName(Logger::defaultLevel()) #ifdef Q_OS_UNIX - , logLevelToString(LoggerMinLevel) + , Logger::logLevelName(LoggerMinLevel) #endif ); } @@ -169,16 +157,16 @@ void CommandLineParser::doParse() if (m_showProgress && m_logLevel != LoggerMinLevel) { qbsInfo() << tr("Setting log level to \"%1\", because option \"--show-progress\"" - " has been given.").arg(logLevelToString(LoggerMinLevel)); + " has been given.").arg(Logger::logLevelName(LoggerMinLevel)); m_logLevel = LoggerMinLevel; } if (m_logLevel < LoggerMinLevel) { qbsWarning() << tr("Cannot decrease log level as much as specified; using \"%1\".") - .arg(logLevelToString(LoggerMinLevel)); + .arg(Logger::logLevelName(LoggerMinLevel)); m_logLevel = LoggerMinLevel; } else if (m_logLevel > LoggerMaxLevel) { qbsWarning() << tr("Cannot increase log level as much as specified; using \"%1\".") - .arg(logLevelToString(LoggerMaxLevel)); + .arg(Logger::logLevelName(LoggerMaxLevel)); m_logLevel = LoggerMaxLevel; } Logger::instance().setLevel(m_logLevel); diff --git a/src/lib/logging/consolelogger.cpp b/src/lib/logging/consolelogger.cpp index 8bddba267..5a7457f2a 100644 --- a/src/lib/logging/consolelogger.cpp +++ b/src/lib/logging/consolelogger.cpp @@ -46,23 +46,20 @@ void ConsolePrintLogSink::outputLogMessage(LoggerLevel level, const LogMessage & file = stderr; if (message.printLogLevel) { + QByteArray data = Logger::logLevelTag(level); + TextColor color = TextColorDefault; switch (level) { - case LoggerError: - fprintfWrapper(TextColorRed, file, "ERROR: "); + case qbs::LoggerError: + color = TextColorRed; break; - case LoggerWarning: - fprintfWrapper(TextColorYellow, file, "WARNING: "); + case qbs::LoggerWarning: + color = TextColorYellow; break; - case LoggerInfo: - fprintf(file, "INFO: "); - break; - case LoggerDebug: - fprintf(file, "DEBUG: "); - break; - case LoggerTrace: - fprintf(file, "TRACE: "); + default: break; } + + fprintfWrapper(color, file, data); } fprintfWrapper(message.textColor, file, "%s\n", message.data.data()); fflush(file); diff --git a/src/lib/logging/logger.cpp b/src/lib/logging/logger.cpp index 5b8db5c4f..1c6731a33 100644 --- a/src/lib/logging/logger.cpp +++ b/src/lib/logging/logger.cpp @@ -50,6 +50,33 @@ Logger &Logger::instance() return instance; } +QByteArray Logger::logLevelTag(LoggerLevel level) +{ + QString str = logLevelName(level).toUpper(); + if (!str.isEmpty()) + str.append(QLatin1String(": ")); + return str.toUtf8(); +} + +QString Logger::logLevelName(LoggerLevel level) +{ + switch (level) { + case qbs::LoggerError: + return QLatin1String("error"); + case qbs::LoggerWarning: + return QLatin1String("warning"); + case qbs::LoggerInfo: + return QLatin1String("info"); + case qbs::LoggerDebug: + return QLatin1String("debug"); + case qbs::LoggerTrace: + return QLatin1String("trace"); + default: + break; + } + return QString(); +} + Logger::Logger() : m_logSink(0) , m_level(defaultLevel()) diff --git a/src/lib/logging/logger.h b/src/lib/logging/logger.h index 7f7468f00..d398cd931 100644 --- a/src/lib/logging/logger.h +++ b/src/lib/logging/logger.h @@ -48,6 +48,8 @@ public: static Logger &instance(); static LoggerLevel defaultLevel() { return LoggerInfo; } + static QByteArray logLevelTag(LoggerLevel level); + static QString logLevelName(LoggerLevel level); void setLevel(int level); void setLevel(LoggerLevel level); |