| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/test/chromedriver/logging.h" | 5 #include "chrome/test/chromedriver/logging.h" |
| 6 | 6 |
| 7 #include <stdio.h> | 7 #include <stdio.h> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 70 case logging::LOG_WARNING: | 70 case logging::LOG_WARNING: |
| 71 return Log::kWarning; | 71 return Log::kWarning; |
| 72 case logging::LOG_INFO: | 72 case logging::LOG_INFO: |
| 73 return Log::kInfo; | 73 return Log::kInfo; |
| 74 case logging::LOG_VERBOSE: | 74 case logging::LOG_VERBOSE: |
| 75 default: | 75 default: |
| 76 return Log::kDebug; | 76 return Log::kDebug; |
| 77 } | 77 } |
| 78 } | 78 } |
| 79 | 79 |
| 80 WebDriverLog* GetSessionLog() { |
| 81 Session* session = GetThreadLocalSession(); |
| 82 if (!session) |
| 83 return NULL; |
| 84 return session->driver_log.get(); |
| 85 } |
| 86 |
| 80 bool InternalIsVLogOn(int vlog_level) { | 87 bool InternalIsVLogOn(int vlog_level) { |
| 81 return GetLevelFromSeverity(vlog_level * -1) >= g_log_level; | 88 WebDriverLog* session_log = GetSessionLog(); |
| 89 Log::Level session_level = session_log ? session_log->min_level() : Log::kOff; |
| 90 Log::Level level = g_log_level < session_level ? g_log_level : session_level; |
| 91 return GetLevelFromSeverity(vlog_level * -1) >= level; |
| 82 } | 92 } |
| 83 | 93 |
| 84 bool HandleLogMessage(int severity, | 94 bool HandleLogMessage(int severity, |
| 85 const char* file, | 95 const char* file, |
| 86 int line, | 96 int line, |
| 87 size_t message_start, | 97 size_t message_start, |
| 88 const std::string& str) { | 98 const std::string& str) { |
| 89 Log::Level level = GetLevelFromSeverity(severity); | 99 Log::Level level = GetLevelFromSeverity(severity); |
| 90 if (level < g_log_level) | 100 std::string message = str.substr(message_start); |
| 91 return true; | |
| 92 | 101 |
| 93 std::string message = str.substr(message_start); | 102 if (level >= g_log_level) { |
| 94 const char* level_name = "UNKNOWN"; | 103 const char* level_name = LevelToName(level); |
| 95 switch (level) { | 104 std::string entry = base::StringPrintf( |
| 96 case Log::kDebug: | 105 "[%.3lf][%s]: %s", |
| 97 level_name = "DEBUG"; | 106 base::TimeDelta(base::TimeTicks::Now() - |
| 98 break; | 107 base::TimeTicks::FromInternalValue(g_start_time)) |
| 99 case Log::kInfo: | 108 .InSecondsF(), |
| 100 level_name = "INFO"; | 109 level_name, |
| 101 break; | 110 message.c_str()); |
| 102 case Log::kWarning: | 111 fprintf(stderr, "%s", entry.c_str()); |
| 103 level_name = "WARNING"; | 112 fflush(stderr); |
| 104 break; | |
| 105 case Log::kError: | |
| 106 level_name = "ERROR"; | |
| 107 break; | |
| 108 default: | |
| 109 break; | |
| 110 } | 113 } |
| 111 std::string entry = base::StringPrintf( | |
| 112 "[%.3lf][%s]: %s", | |
| 113 base::TimeDelta(base::TimeTicks::Now() - | |
| 114 base::TimeTicks::FromInternalValue(g_start_time)) | |
| 115 .InSecondsF(), | |
| 116 level_name, | |
| 117 message.c_str()); | |
| 118 | 114 |
| 119 fprintf(stderr, "%s", entry.c_str()); | 115 WebDriverLog* session_log = GetSessionLog(); |
| 120 fflush(stderr); | 116 if (session_log) |
| 117 session_log->AddEntry(level, message); |
| 118 |
| 121 return true; | 119 return true; |
| 122 } | 120 } |
| 123 | 121 |
| 124 } // namespace | 122 } // namespace |
| 125 | 123 |
| 126 bool WebDriverLog::NameToLevel(const std::string& name, Log::Level* out_level) { | 124 bool WebDriverLog::NameToLevel(const std::string& name, Log::Level* out_level) { |
| 127 for (size_t i = 0; i < arraysize(kNameToLevel); ++i) { | 125 for (size_t i = 0; i < arraysize(kNameToLevel); ++i) { |
| 128 if (name == kNameToLevel[i].name) { | 126 if (name == kNameToLevel[i].name) { |
| 129 *out_level = kNameToLevel[i].level; | 127 *out_level = kNameToLevel[i].level; |
| 130 return true; | 128 return true; |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 259 | 257 |
| 260 // Create "driver" log -- should always exist. | 258 // Create "driver" log -- should always exist. |
| 261 scoped_ptr<WebDriverLog> driver_log( | 259 scoped_ptr<WebDriverLog> driver_log( |
| 262 new WebDriverLog(kDriverLogType, driver_log_level)); | 260 new WebDriverLog(kDriverLogType, driver_log_level)); |
| 263 | 261 |
| 264 out_logs->swap(logs); | 262 out_logs->swap(logs); |
| 265 *out_driver_log = driver_log.Pass(); | 263 *out_driver_log = driver_log.Pass(); |
| 266 out_listeners->swap(listeners); | 264 out_listeners->swap(listeners); |
| 267 return Status(kOk); | 265 return Status(kOk); |
| 268 } | 266 } |
| OLD | NEW |