From 3b59339f0878271b16e453259d470ef07b0b49fd Mon Sep 17 00:00:00 2001 From: Date: Wed, 23 Jan 2013 05:27:13 +0000 Subject: [PATCH] Follow up for the color log patch - Rename colorstderr => colorlogtostderr - Remove duplicated code - Set colorlogtostderr=0 in the unittest git-svn-id: https://google-glog.googlecode.com/svn/trunk@124 eb4d4688-79bd-11dd-afb4-1d65580434c0 --- src/glog/logging.h.in | 3 +++ src/logging.cc | 27 ++++++++++++--------------- src/logging_unittest.cc | 1 + src/windows/glog/logging.h | 3 +++ 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/glog/logging.h.in b/src/glog/logging.h.in index 3856fed..21f322e 100644 --- a/src/glog/logging.h.in +++ b/src/glog/logging.h.in @@ -322,6 +322,9 @@ DECLARE_bool(logtostderr); // Set whether log messages go to stderr in addition to logfiles. DECLARE_bool(alsologtostderr); +// Set color messages logged to stderr (if supported by terminal). +DECLARE_bool(colorlogtostderr); + // Log messages at a level >= this flag are automatically sent to // stderr in addition to log files. DECLARE_int32(stderrthreshold); diff --git a/src/logging.cc b/src/logging.cc index 418eb51..ec334a9 100644 --- a/src/logging.cc +++ b/src/logging.cc @@ -102,7 +102,7 @@ GLOG_DEFINE_bool(logtostderr, BoolFromEnv("GOOGLE_LOGTOSTDERR", false), "log messages go to stderr instead of logfiles"); GLOG_DEFINE_bool(alsologtostderr, BoolFromEnv("GOOGLE_ALSOLOGTOSTDERR", false), "log messages go to stderr in addition to logfiles"); -GLOG_DEFINE_bool(colorstderr, false, +GLOG_DEFINE_bool(colorlogtostderr, false, "color messages logged to stderr (if supported by terminal)"); #ifdef OS_LINUX GLOG_DEFINE_bool(drop_log_memory, true, "Drop in-memory buffers of log contents. " @@ -629,10 +629,15 @@ inline void LogDestination::SetEmailLogging(LogSeverity min_severity, LogDestination::addresses_ = addresses; } -static void ColoredWriteToStderr(const char* message, size_t len, GLogColor color) { +static void ColoredWriteToStderr(LogSeverity severity, + const char* message, size_t len) { + const GLogColor color = + (LogDestination::terminal_supports_color() && FLAGS_colorlogtostderr) ? + SeverityToColor(severity) : COLOR_DEFAULT; + // Avoid using cerr from this module since we may get called during // exit code, and cerr may be partially or fully destroyed by then. - if ( COLOR_DEFAULT == color ) { + if (COLOR_DEFAULT == color) { fwrite(message, len, 1, stderr); return; } @@ -670,10 +675,7 @@ static void WriteToStderr(const char* message, size_t len) { inline void LogDestination::MaybeLogToStderr(LogSeverity severity, const char* message, size_t len) { if ((severity >= FLAGS_stderrthreshold) || FLAGS_alsologtostderr) { - const GLogColor color = - (terminal_supports_color_ && FLAGS_colorstderr) ? - SeverityToColor(severity) : COLOR_DEFAULT; - ColoredWriteToStderr(message, len, color); + ColoredWriteToStderr(severity, message, len); #ifdef OS_WINDOWS // On Windows, also output to the debugger ::OutputDebugStringA(string(message,len).c_str()); @@ -723,10 +725,7 @@ inline void LogDestination::LogToAllLogfiles(LogSeverity severity, size_t len) { if ( FLAGS_logtostderr ) { // global flag: never log to file - const GLogColor color = - (terminal_supports_color_ && FLAGS_colorstderr) ? - SeverityToColor(severity) : COLOR_DEFAULT; - ColoredWriteToStderr(message, len, color); + ColoredWriteToStderr(severity, message, len); } else { for (int i = severity; i >= 0; --i) LogDestination::MaybeLogToLogfile(i, timestamp, message, len); @@ -1343,10 +1342,8 @@ void LogMessage::SendToLog() EXCLUSIVE_LOCKS_REQUIRED(log_mutex) { // file if we haven't parsed the command line flags to get the // program name. if (FLAGS_logtostderr || !IsGoogleLoggingInitialized()) { - const GLogColor color = - (LogDestination::terminal_supports_color() && FLAGS_colorstderr) ? - SeverityToColor(data_->severity_) : COLOR_DEFAULT; - ColoredWriteToStderr(data_->message_text_, data_->num_chars_to_log_, color); + ColoredWriteToStderr(data_->severity_, + data_->message_text_, data_->num_chars_to_log_); // this could be protected by a flag if necessary. LogDestination::LogToSinks(data_->severity_, diff --git a/src/logging_unittest.cc b/src/logging_unittest.cc index 824086c..2a58aae 100644 --- a/src/logging_unittest.cc +++ b/src/logging_unittest.cc @@ -174,6 +174,7 @@ static void BM_vlog(int n) { BENCHMARK(BM_vlog); int main(int argc, char **argv) { + FLAGS_colorlogtostderr = false; #ifdef HAVE_LIB_GFLAGS ParseCommandLineFlags(&argc, &argv, true); #endif diff --git a/src/windows/glog/logging.h b/src/windows/glog/logging.h index 3d3823e..8c585bc 100755 --- a/src/windows/glog/logging.h +++ b/src/windows/glog/logging.h @@ -326,6 +326,9 @@ DECLARE_bool(logtostderr); // Set whether log messages go to stderr in addition to logfiles. DECLARE_bool(alsologtostderr); +// Set color messages logged to stderr (if supported by terminal). +DECLARE_bool(colorlogtostderr); + // Log messages at a level >= this flag are automatically sent to // stderr in addition to log files. DECLARE_int32(stderrthreshold); -- 2.7.4