Index: chrome/test/chromedriver/logging.cc |
diff --git a/chrome/test/chromedriver/logging.cc b/chrome/test/chromedriver/logging.cc |
index 4a8cfa1ce83435d4ab675f575b3fbf88101d2125..d0bae358ab6ad8bada19b9cf6745b3d262fcc171 100644 |
--- a/chrome/test/chromedriver/logging.cc |
+++ b/chrome/test/chromedriver/logging.cc |
@@ -77,8 +77,18 @@ Log::Level GetLevelFromSeverity(int severity) { |
} |
} |
+WebDriverLog* GetSessionLog() { |
+ Session* session = GetThreadLocalSession(); |
+ if (!session) |
+ return NULL; |
+ return session->driver_log.get(); |
+} |
+ |
bool InternalIsVLogOn(int vlog_level) { |
- return GetLevelFromSeverity(vlog_level * -1) >= g_log_level; |
+ WebDriverLog* session_log = GetSessionLog(); |
+ Log::Level session_level = session_log ? session_log->min_level() : Log::kOff; |
+ Log::Level level = g_log_level < session_level ? g_log_level : session_level; |
+ return GetLevelFromSeverity(vlog_level * -1) >= level; |
} |
bool HandleLogMessage(int severity, |
@@ -87,37 +97,25 @@ bool HandleLogMessage(int severity, |
size_t message_start, |
const std::string& str) { |
Log::Level level = GetLevelFromSeverity(severity); |
- if (level < g_log_level) |
- return true; |
- |
std::string message = str.substr(message_start); |
- const char* level_name = "UNKNOWN"; |
- switch (level) { |
- case Log::kDebug: |
- level_name = "DEBUG"; |
- break; |
- case Log::kInfo: |
- level_name = "INFO"; |
- break; |
- case Log::kWarning: |
- level_name = "WARNING"; |
- break; |
- case Log::kError: |
- level_name = "ERROR"; |
- break; |
- default: |
- break; |
+ |
+ if (level >= g_log_level) { |
+ const char* level_name = LevelToName(level); |
+ std::string entry = base::StringPrintf( |
+ "[%.3lf][%s]: %s", |
+ base::TimeDelta(base::TimeTicks::Now() - |
+ base::TimeTicks::FromInternalValue(g_start_time)) |
+ .InSecondsF(), |
+ level_name, |
+ message.c_str()); |
+ fprintf(stderr, "%s", entry.c_str()); |
+ fflush(stderr); |
} |
- std::string entry = base::StringPrintf( |
- "[%.3lf][%s]: %s", |
- base::TimeDelta(base::TimeTicks::Now() - |
- base::TimeTicks::FromInternalValue(g_start_time)) |
- .InSecondsF(), |
- level_name, |
- message.c_str()); |
- |
- fprintf(stderr, "%s", entry.c_str()); |
- fflush(stderr); |
+ |
+ WebDriverLog* session_log = GetSessionLog(); |
+ if (session_log) |
+ session_log->AddEntry(level, message); |
+ |
return true; |
} |