Index: chrome/test/chromedriver/logging.cc |
diff --git a/chrome/test/chromedriver/logging.cc b/chrome/test/chromedriver/logging.cc |
index afd73754ca19963be1f6f74e75d15fdb070a88a6..cb7350ca86a691a0a71cf77c296edf1085038a28 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 LogMessageHandler : logging::LogMessageHandler { |
+ bool OnMessage(int severity, |
+ const char* file, |
+ int line, |
+ size_t message_start, |
+ const std::string& str) override; |
+}; |
+ |
+bool LogMessageHandler::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); |
@@ -238,7 +246,8 @@ bool InitLogging() { |
false, // enable_thread_id |
false, // enable_timestamp |
false); // enable_tickcount |
- logging::SetLogMessageHandler(&HandleLogMessage); |
+ auto* handler = new LogMessageHandler(); // Intentionally leak this instance. |
+ CHECK(handler); |
logging::LoggingSettings logging_settings; |
logging_settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; |