ANSI colors in Windows 10
This commit is contained in:
parent
e19652df51
commit
2e2daebcc9
|
@ -28,6 +28,13 @@
|
||||||
#ifndef _MLOG_H_
|
#ifndef _MLOG_H_
|
||||||
#define _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 <time.h>
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
|
@ -117,6 +124,31 @@ static const char *get_default_categories(int level)
|
||||||
return categories;
|
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)
|
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;
|
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);
|
monero_log = get_default_categories(0);
|
||||||
}
|
}
|
||||||
mlog_set_log(monero_log);
|
mlog_set_log(monero_log);
|
||||||
|
#ifdef WIN32
|
||||||
|
EnableVTMode();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void mlog_set_categories(const char *categories)
|
void mlog_set_categories(const char *categories)
|
||||||
|
|
Loading…
Reference in New Issue