From 37e71c6aca32b153159df660465679952e762dbc Mon Sep 17 00:00:00 2001 From: Chunting Gu Date: Tue, 9 Apr 2019 11:14:45 +0800 Subject: [PATCH] Refine logger for colors --- webcc/logger.cc | 22 ++++++++++++---------- webcc/logger.h | 2 -- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/webcc/logger.cc b/webcc/logger.cc index fa2971a..2a3ed67 100644 --- a/webcc/logger.cc +++ b/webcc/logger.cc @@ -13,7 +13,7 @@ #include #if (defined(WIN32) || defined(_WIN64)) -// Do nothing. +#include #else // For getting thread ID. #include @@ -79,12 +79,13 @@ static const bool g_terminal_has_color = []() { #ifndef ENABLE_VIRTUAL_TERMINAL_PROCESSING #define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 #endif - HANDLE houtput = GetStdHandle(STD_OUTPUT_HANDLE); - if (houtput != INVALID_HANDLE_VALUE) { + // NOTE: Need Windows 10. + HANDLE h_output = GetStdHandle(STD_OUTPUT_HANDLE); + if (h_output != INVALID_HANDLE_VALUE) { DWORD mode = 0; - GetConsoleMode(houtput, &mode); + GetConsoleMode(h_output, &mode); mode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING; - return SetConsoleMode(houtput, mode) != 0; + return SetConsoleMode(h_output, mode) != 0; } return false; #else @@ -104,7 +105,7 @@ static const bool g_terminal_has_color = []() { // Colors -#ifdef _WIN32 +#if (defined(WIN32) || defined(_WIN64)) #define VTSEQ(ID) ("\x1b[1;" #ID "m") #else #define VTSEQ(ID) ("\x1b[" #ID "m") @@ -157,6 +158,8 @@ const char* TerminalReset() { return g_terminal_has_color ? VTSEQ(0) : ""; } +// ----------------------------------------------------------------------------- + namespace bfs = boost::filesystem; // std::this_thread::get_id() returns a very long ID (same as pthread_self()) @@ -265,11 +268,10 @@ void LogWrite(int level, const char* file, int line, const char* format, ...) { if (g_colorlogtostderr && g_terminal_has_color) { if (level < WEBCC_WARN) { - fprintf(stderr, "%s%s%s, %s, %7s, %25s, %4d, %s", - TerminalReset(), TerminalDim(), + fprintf(stderr, "%s%s, %s, %7s, %25s, %4d, ", + TerminalReset(), timestamp.c_str(), kLevelNames[level], thread_id.c_str(), - file, line, - level == WEBCC_INFO ? TerminalReset() : ""); // un-dim for INFO + file, line); } else { fprintf(stderr, "%s%s%s, %s, %7s, %25s, %4d, ", TerminalReset(), diff --git a/webcc/logger.h b/webcc/logger.h index b80c8bf..709a5a2 100644 --- a/webcc/logger.h +++ b/webcc/logger.h @@ -1,8 +1,6 @@ #ifndef WEBCC_LOGGER_H_ #define WEBCC_LOGGER_H_ -// Simple console logger. - // This file was generated from "config.h.in" by CMake. #include "webcc/config.h"