From 757231cc6e777b8f4717d1467ef7efa01c7fde15 Mon Sep 17 00:00:00 2001 From: peterbell10 Date: Wed, 3 Jan 2018 17:41:16 +0000 Subject: Add the fmt library (#4065) * Replaces AppendVPrintf with fmt::sprintf * fmt::ArgList now used as a type safe alternative to varargs. * Removed SIZE_T_FMT compatibility macros. fmt::sprintf is fully portable and supports %zu. * Adds FLOG functions to log with fmt's native formatting style. --- src/Logger.cpp | 79 ++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 24 deletions(-) (limited to 'src/Logger.cpp') diff --git a/src/Logger.cpp b/src/Logger.cpp index 60f5a88d2..f0080e73c 100644 --- a/src/Logger.cpp +++ b/src/Logger.cpp @@ -63,11 +63,18 @@ void cLogger::LogSimple(AString a_Message, eLogLevel a_LogLevel) -void cLogger::Log(const char * a_Format, eLogLevel a_LogLevel, va_list a_ArgList) +void cLogger::LogPrintf(const char * a_Format, eLogLevel a_LogLevel, fmt::ArgList a_ArgList) { - AString Message; - AppendVPrintf(Message, a_Format, a_ArgList); - LogSimple(Message, a_LogLevel); + LogSimple(Printf(a_Format, a_ArgList), a_LogLevel); +} + + + + + +void cLogger::LogFormat(const char * a_Format, eLogLevel a_LogLevel, fmt::ArgList a_ArgList) +{ + LogSimple(fmt::format(a_Format, a_ArgList), a_LogLevel); } @@ -110,48 +117,72 @@ void cLogger::DetachListener(cListener * a_Listener) //////////////////////////////////////////////////////////////////////////////// // Global functions -void LOG(const char * a_Format, ...) +void FLOG(const char * a_Format, fmt::ArgList a_ArgList) +{ + cLogger::GetInstance().LogFormat(a_Format, cLogger::llRegular, a_ArgList); +} + + + + + +void FLOGINFO(const char * a_Format, fmt::ArgList a_ArgList) +{ + cLogger::GetInstance().LogFormat( a_Format, cLogger::llInfo, a_ArgList); +} + + + + + +void FLOGWARNING(const char * a_Format, fmt::ArgList a_ArgList) +{ + cLogger::GetInstance().LogFormat( a_Format, cLogger::llWarning, a_ArgList); +} + + + + + +void FLOGERROR(const char * a_Format, fmt::ArgList a_ArgList) +{ + cLogger::GetInstance().LogFormat( a_Format, cLogger::llError, a_ArgList); +} + + + + + +void LOG(const char * a_Format, fmt::ArgList a_ArgList) { - va_list argList; - va_start(argList, a_Format); - cLogger::GetInstance().Log(a_Format, cLogger::llRegular, argList); - va_end(argList); + cLogger::GetInstance().LogPrintf(a_Format, cLogger::llRegular, a_ArgList); } -void LOGINFO(const char * a_Format, ...) +void LOGINFO(const char * a_Format, fmt::ArgList a_ArgList) { - va_list argList; - va_start(argList, a_Format); - cLogger::GetInstance().Log( a_Format, cLogger::llInfo, argList); - va_end(argList); + cLogger::GetInstance().LogPrintf( a_Format, cLogger::llInfo, a_ArgList); } -void LOGWARNING(const char * a_Format, ...) +void LOGWARNING(const char * a_Format, fmt::ArgList a_ArgList) { - va_list argList; - va_start(argList, a_Format); - cLogger::GetInstance().Log( a_Format, cLogger::llWarning, argList); - va_end(argList); + cLogger::GetInstance().LogPrintf( a_Format, cLogger::llWarning, a_ArgList); } -void LOGERROR(const char * a_Format, ...) +void LOGERROR(const char * a_Format, fmt::ArgList a_ArgList) { - va_list argList; - va_start(argList, a_Format); - cLogger::GetInstance().Log( a_Format, cLogger::llError, argList); - va_end(argList); + cLogger::GetInstance().LogPrintf( a_Format, cLogger::llError, a_ArgList); } -- cgit v1.2.3