diff --git a/src/utils/log.cpp b/src/utils/log.cpp index e5d39167e..4816d15d5 100644 --- a/src/utils/log.cpp +++ b/src/utils/log.cpp @@ -35,6 +35,7 @@ Log::LogLevel Log::m_min_log_level = Log::LL_VERBOSE; bool Log::m_no_colors = false; FILE* Log::m_file_stdout = NULL; +std::string Log::m_prefix = ""; // ---------------------------------------------------------------------------- /** Selects background/foreground colors for the message depending on @@ -181,6 +182,8 @@ void Log::printMessage(int level, const char *component, const char *format, #ifdef ANDROID __android_log_vprint(alp, "SuperTuxKart", format, out); #else + if(!m_prefix.empty()) + printf("%s ", m_prefix.c_str()); printf("[%s] %s: ", names[level], component); vprintf(format, out); #endif @@ -193,6 +196,11 @@ void Log::printMessage(int level, const char *component, const char *format, static char szBuff[2048]; vsnprintf(szBuff, sizeof(szBuff), format, copy2); + if (!m_prefix.empty()) + { + OutputDebugString(m_prefix.c_str()); + OutputDebugString(" "); + } OutputDebugString("["); OutputDebugString(names[level]); OutputDebugString("] "); @@ -205,6 +213,8 @@ void Log::printMessage(int level, const char *component, const char *format, if(m_file_stdout) { + if(!m_prefix.empty()) + fprintf(m_file_stdout, "%s ", m_prefix.c_str()); fprintf (m_file_stdout, "[%s] %s: ", names[level], component); vfprintf(m_file_stdout, format, copy); fprintf (m_file_stdout, "\n"); diff --git a/src/utils/log.hpp b/src/utils/log.hpp index 61726cb8b..2d4c69a65 100644 --- a/src/utils/log.hpp +++ b/src/utils/log.hpp @@ -59,6 +59,9 @@ private: /** The file where stdout output will be written */ static FILE* m_file_stdout; + /** An optional prefix to be printed. */ + static std::string m_prefix; + static void setTerminalColor(LogLevel level); static void resetTerminalColor(); @@ -120,5 +123,9 @@ public: { m_no_colors = true; } // disableColor + // ------------------------------------------------------------------------ + /** Sets a prefix to be printed before each line. To disable the prefix, + * set it to "". */ + static void setPrefix(const std::string &prefix) { m_prefix = prefix; } }; // Log #endif