Support ANSI color codes in the console logger for Linux/Mac
This commit is contained in:
parent
34606f34a9
commit
988bd53b5f
|
@ -35,6 +35,9 @@ ConsoleListener::ConsoleListener()
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
hConsole = NULL;
|
hConsole = NULL;
|
||||||
|
bUseColor = true;
|
||||||
|
#else
|
||||||
|
bUseColor = isatty(fileno(stdout));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -299,7 +302,28 @@ void ConsoleListener::Log(LogTypes::LOG_LEVELS Level, const char *Text)
|
||||||
SetConsoleTextAttribute(hConsole, Color);
|
SetConsoleTextAttribute(hConsole, Color);
|
||||||
WriteConsole(hConsole, Text, (DWORD)strlen(Text), &cCharsWritten, NULL);
|
WriteConsole(hConsole, Text, (DWORD)strlen(Text), &cCharsWritten, NULL);
|
||||||
#else
|
#else
|
||||||
fprintf(stderr, "%s", Text);
|
char ColorAttr[16] = "";
|
||||||
|
char ResetAttr[16] = "";
|
||||||
|
|
||||||
|
if (bUseColor)
|
||||||
|
{
|
||||||
|
strcpy(ResetAttr, "\033[0m");
|
||||||
|
switch (Level)
|
||||||
|
{
|
||||||
|
case NOTICE_LEVEL: // light green
|
||||||
|
strcpy(ColorAttr, "\033[92m");
|
||||||
|
break;
|
||||||
|
case ERROR_LEVEL: // light red
|
||||||
|
strcpy(ColorAttr, "\033[91m");
|
||||||
|
break;
|
||||||
|
case WARNING_LEVEL: // light yellow
|
||||||
|
strcpy(ColorAttr, "\033[93m");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fprintf(stderr, "%s%s%s", ColorAttr, Text, ResetAttr);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
// Clear console screen
|
// Clear console screen
|
||||||
|
|
|
@ -48,6 +48,7 @@ private:
|
||||||
HWND GetHwnd(void);
|
HWND GetHwnd(void);
|
||||||
HANDLE hConsole;
|
HANDLE hConsole;
|
||||||
#endif
|
#endif
|
||||||
|
bool bUseColor;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _CONSOLELISTENER_H
|
#endif // _CONSOLELISTENER_H
|
||||||
|
|
Loading…
Reference in New Issue