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

Unified Diff: chrome/test/chromedriver/chrome/log.cc

Issue 23566018: [chromedriver] Remove Logger and just use base LOG. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address comments 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/chromedriver/chrome/log.h ('k') | chrome/test/chromedriver/chrome/performance_logger.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/chromedriver/chrome/log.cc
diff --git a/chrome/test/chromedriver/chrome/log.cc b/chrome/test/chromedriver/chrome/log.cc
index d272a55333cbc88c99bec19095eccb27b53b487a..148c04618ad4e2a0dd7bd9f3db56a7f7069833b6 100644
--- a/chrome/test/chromedriver/chrome/log.cc
+++ b/chrome/test/chromedriver/chrome/log.cc
@@ -4,18 +4,19 @@
#include "chrome/test/chromedriver/chrome/log.h"
-#include <stdio.h>
-
#include "base/json/json_reader.h"
#include "base/json/json_writer.h"
#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
#include "base/values.h"
+void Log::AddEntry(Level level, const std::string& message) {
+ AddEntryTimestamped(base::Time::Now(), level, message);
+}
+
namespace {
-// Truncates the given string to 200 characters, adding an ellipsis if
-// truncation was necessary.
+IsVLogOnFunc g_is_vlog_on_func = NULL;
+
void TruncateString(std::string* data) {
const size_t kMaxLength = 200;
if (data->length() > kMaxLength) {
@@ -24,8 +25,7 @@ void TruncateString(std::string* data) {
}
}
-// Truncates all strings contained in the given value.
-void TruncateContainedStrings(base::Value* value) {
+base::Value* TruncateContainedStrings(base::Value* value) {
base::ListValue* list = NULL;
base::DictionaryValue* dict = NULL;
if (value->GetAsDictionary(&dict)) {
@@ -55,80 +55,45 @@ void TruncateContainedStrings(base::Value* value) {
}
}
}
+ return value;
}
-std::string ConvertForDisplayInternal(const std::string& input) {
- size_t left = input.find("{");
- size_t right = input.rfind("}");
- if (left == std::string::npos || right == std::string::npos)
- return input.substr(0, 10 << 10);
+} // namespace
- scoped_ptr<base::Value> value(
- base::JSONReader::Read(input.substr(left, right - left + 1)));
- if (!value)
- return input.substr(0, 10 << 10);
- TruncateContainedStrings(value.get());
- std::string json;
- base::JSONWriter::WriteWithOptions(
- value.get(), base::JSONWriter::OPTIONS_PRETTY_PRINT, &json);
- std::string display = input.substr(0, left) + json;
- if (input.length() > right)
- display += input.substr(right + 1);
- return display;
+void InitLogging(IsVLogOnFunc is_vlog_on_func) {
+ g_is_vlog_on_func = is_vlog_on_func;
}
-// Pretty prints encapsulated JSON and truncates long strings for display.
-std::string ConvertForDisplay(const std::string& input) {
- std::string display = ConvertForDisplayInternal(input);
- char remove_chars[] = {'\r', '\0'};
- RemoveChars(display, remove_chars, &display);
- return display;
+bool IsVLogOn(int vlog_level) {
+ if (!g_is_vlog_on_func)
+ return false;
+ return g_is_vlog_on_func(vlog_level);
}
-} // namespace
-
-void Log::AddEntry(Level level, const std::string& message) {
- AddEntryTimestamped(base::Time::Now(), level, message);
+std::string PrettyPrintValue(const base::Value& value) {
+ std::string json;
+ base::JSONWriter::WriteWithOptions(
+ &value, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json);
+#if defined(OS_WIN)
+ RemoveChars(json, "\r", &json);
+#endif
+ // Remove the trailing newline.
+ if (json.length())
+ json.resize(json.length() - 1);
+ return json;
}
-Logger::Logger() : min_log_level_(kLog), start_(base::Time::Now()) {}
-
-Logger::Logger(Level min_log_level)
- : min_log_level_(min_log_level), start_(base::Time::Now()) {}
-
-Logger::~Logger() {}
-
-void Logger::AddEntryTimestamped(const base::Time& timestamp,
- Level level,
- const std::string& message) {
- if (level < min_log_level_)
- return;
+std::string FormatValueForDisplay(const base::Value& value) {
+ scoped_ptr<base::Value> truncated(TruncateContainedStrings(value.DeepCopy()));
+ return PrettyPrintValue(*truncated);
+}
- const char* level_name = "UNKNOWN";
- switch (level) {
- case kDebug:
- level_name = "DEBUG";
- break;
- case kLog:
- level_name = "INFO";
- break;
- case kWarning:
- level_name = "WARNING";
- break;
- case kError:
- level_name = "ERROR";
- break;
- default:
- break;
+std::string FormatJsonForDisplay(const std::string& json) {
+ scoped_ptr<base::Value> value(base::JSONReader::Read(json));
+ if (!value) {
+ std::string truncated = json;
+ TruncateString(&truncated);
+ return truncated;
}
- std::string entry =
- base::StringPrintf("[%.3lf][%s]: %s",
- base::TimeDelta(timestamp - start_).InSecondsF(),
- level_name,
- ConvertForDisplay(message).c_str());
- const char* format = "%s\n";
- if (entry[entry.length() - 1] == '\n')
- format = "%s";
- fprintf(stderr, format, entry.c_str());
- fflush(stderr);
+ return PrettyPrintValue(*TruncateContainedStrings(value.get()));
}
« no previous file with comments | « chrome/test/chromedriver/chrome/log.h ('k') | chrome/test/chromedriver/chrome/performance_logger.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698