ANSI colors in Windows 10
This commit is contained in:
parent
e19652df51
commit
2e2daebcc9
|
@ -28,6 +28,13 @@
|
|||
#ifndef _MLOG_H_
|
||||
#define _MLOG_H_
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING
|
||||
#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <time.h>
|
||||
#include <atomic>
|
||||
#include <boost/filesystem.hpp>
|
||||
|
@ -117,6 +124,31 @@ static const char *get_default_categories(int level)
|
|||
return categories;
|
||||
}
|
||||
|
||||
#ifdef WIN32
|
||||
bool EnableVTMode()
|
||||
{
|
||||
// Set output mode to handle virtual terminal sequences
|
||||
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
if (hOut == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
DWORD dwMode = 0;
|
||||
if (!GetConsoleMode(hOut, &dwMode))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
|
||||
if (!SetConsoleMode(hOut, dwMode))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
void mlog_configure(const std::string &filename_base, bool console, const std::size_t max_log_file_size, const std::size_t max_log_files)
|
||||
{
|
||||
el::Configurations c;
|
||||
|
@ -202,6 +234,9 @@ void mlog_configure(const std::string &filename_base, bool console, const std::s
|
|||
monero_log = get_default_categories(0);
|
||||
}
|
||||
mlog_set_log(monero_log);
|
||||
#ifdef WIN32
|
||||
EnableVTMode();
|
||||
#endif
|
||||
}
|
||||
|
||||
void mlog_set_categories(const char *categories)
|
||||
|
|
Loading…
Reference in New Issue