Index: chrome/test/chromedriver/logging.cc |
diff --git a/chrome/test/chromedriver/logging.cc b/chrome/test/chromedriver/logging.cc |
index afd73754ca19963be1f6f74e75d15fdb070a88a6..465e82e25d81f42648c29b5887baa062779fad57 100644 |
--- a/chrome/test/chromedriver/logging.cc |
+++ b/chrome/test/chromedriver/logging.cc |
@@ -97,11 +97,19 @@ bool InternalIsVLogOn(int vlog_level) { |
return GetLevelFromSeverity(vlog_level * -1) >= level; |
} |
-bool HandleLogMessage(int severity, |
- const char* file, |
- int line, |
- size_t message_start, |
- const std::string& str) { |
+class LogMessageListener : logging::LogMessageListener { |
+ void OnMessage(int severity, |
+ const char* file, |
+ int line, |
+ size_t message_start, |
+ const std::string& str) override; |
+}; |
+ |
+void LogMessageListener::OnMessage(int severity, |
+ const char* file, |
+ int line, |
+ size_t message_start, |
+ const std::string& str) { |
Log::Level level = GetLevelFromSeverity(severity); |
std::string message = str.substr(message_start); |
@@ -121,8 +129,6 @@ bool HandleLogMessage(int severity, |
WebDriverLog* session_log = GetSessionLog(); |
if (session_log) |
session_log->AddEntry(level, message); |
- |
- return true; |
} |
} // namespace |
@@ -238,7 +244,8 @@ bool InitLogging() { |
false, // enable_thread_id |
false, // enable_timestamp |
false); // enable_tickcount |
- logging::SetLogMessageHandler(&HandleLogMessage); |
+ |
+ new LogMessageListener(); // Intentionally leak this instance. |
logging::LoggingSettings logging_settings; |
logging_settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; |