 Chromium Code Reviews
 Chromium Code Reviews Issue 1331503002:
  Disable base/logging.h stderr logs by default for webrtc/ tests.  (Closed) 
  Base URL: https://chromium.googlesource.com/external/webrtc.git@master
    
  
    Issue 1331503002:
  Disable base/logging.h stderr logs by default for webrtc/ tests.  (Closed) 
  Base URL: https://chromium.googlesource.com/external/webrtc.git@master| Index: webrtc/base/logging.cc | 
| diff --git a/webrtc/base/logging.cc b/webrtc/base/logging.cc | 
| index 58f8f58df5079b950a8276b818eb6a42764776f1..e2ee1150638f1afa6c18ded8d8dfc6050de666a8 100644 | 
| --- a/webrtc/base/logging.cc | 
| +++ b/webrtc/base/logging.cc | 
| @@ -44,12 +44,25 @@ static const int kMaxLogLineSize = 1024 - 60; | 
| #include "webrtc/base/timeutils.h" | 
| namespace rtc { | 
| +namespace { | 
| + | 
| +// Return the filename portion of the string (that following the last slash). | 
| +const char* FilenameFromPath(const char* file) { | 
| + const char* end1 = ::strrchr(file, '/'); | 
| + const char* end2 = ::strrchr(file, '\\'); | 
| + if (!end1 && !end2) | 
| + return file; | 
| + else | 
| + return (end1 > end2) ? end1 + 1 : end2 + 1; | 
| +} | 
| + | 
| +} // namespace | 
| ///////////////////////////////////////////////////////////////////////////// | 
| // Constant Labels | 
| ///////////////////////////////////////////////////////////////////////////// | 
| -const char * FindLabel(int value, const ConstantLabel entries[]) { | 
| +const char* FindLabel(int value, const ConstantLabel entries[]) { | 
| for (int i = 0; entries[i].label; ++i) { | 
| if (value == entries[i].value) { | 
| return entries[i].label; | 
| @@ -58,12 +71,12 @@ const char * FindLabel(int value, const ConstantLabel entries[]) { | 
| return 0; | 
| } | 
| -std::string ErrorName(int err, const ConstantLabel * err_table) { | 
| +std::string ErrorName(int err, const ConstantLabel* err_table) { | 
| if (err == 0) | 
| return "No error"; | 
| if (err_table != 0) { | 
| - if (const char * value = FindLabel(err, err_table)) | 
| + if (const char* value = FindLabel(err, err_table)) | 
| return value; | 
| } | 
| @@ -84,6 +97,7 @@ LoggingSeverity LogMessage::dbg_sev_ = LS_INFO; | 
| LoggingSeverity LogMessage::min_sev_ = LS_NONE; | 
| LoggingSeverity LogMessage::dbg_sev_ = LS_NONE; | 
| #endif // !_DEBUG | 
| +bool LogMessage::log_to_stderr_ = true; | 
| // Global lock for log subsystem, only needed to serialize access to streams_. | 
| CriticalSection LogMessage::crit_; | 
| @@ -116,6 +130,8 @@ LogMessage::LogMessage(const char* file, int line, LoggingSeverity sev, | 
| print_stream_ << "[" << std::dec << id << "] "; | 
| } | 
| + print_stream_ << "(" << FilenameFromPath(file) << ":" << line << "): "; | 
| + | 
| if (err_ctx != ERRCTX_NONE) { | 
| std::ostringstream tmp; | 
| tmp << "[0x" << std::setfill('0') << std::hex << std::setw(8) << err << "]"; | 
| @@ -214,6 +230,10 @@ void LogMessage::LogToDebug(LoggingSeverity min_sev) { | 
| UpdateMinLogSeverity(); | 
| } | 
| +void LogMessage::SetLogToStderr(bool log_to_stderr) { | 
| + log_to_stderr_ = log_to_stderr; | 
| 
Andrew MacDonald
2015/09/05 05:32:18
My intuition is to protect this with the mutex, bu
 
hlundin-webrtc
2015/09/06 10:10:44
Acknowledged.
 | 
| +} | 
| + | 
| int LogMessage::GetLogToStream(LogSink* stream) { | 
| CritScope cs(&crit_); | 
| LoggingSeverity sev = LS_NONE; | 
| @@ -314,7 +334,7 @@ void LogMessage::UpdateMinLogSeverity() EXCLUSIVE_LOCKS_REQUIRED(crit_) { | 
| void LogMessage::OutputToDebug(const std::string& str, | 
| LoggingSeverity severity) { | 
| - bool log_to_stderr = true; | 
| + bool log_to_stderr = log_to_stderr_; | 
| #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS) && (!defined(DEBUG) || defined(NDEBUG)) | 
| // On the Mac, all stderr output goes to the Console log and causes clutter. | 
| // So in opt builds, don't log to stderr unless the user specifically sets |