Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(249)

Side by Side Diff: chrome/test/chromedriver/logging.cc

Issue 23467010: [chromedriver] Logging tweaks and fixes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698