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

Unified Diff: chrome/browser/sync_file_system/logger.cc

Issue 15657002: Mirror syncfs log to console and WebUI, with LogSeverity support. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added tests Created 7 years, 7 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
Index: chrome/browser/sync_file_system/logger.cc
diff --git a/chrome/browser/sync_file_system/logger.cc b/chrome/browser/sync_file_system/logger.cc
index 55705c95b16666dccbe2c553a4e7d027887471a5..07bb81fd88ca9335de6e0ec43b204b9f1312e6a1 100644
--- a/chrome/browser/sync_file_system/logger.cc
+++ b/chrome/browser/sync_file_system/logger.cc
@@ -15,9 +15,51 @@ namespace {
static base::LazyInstance<google_apis::EventLogger> g_logger =
LAZY_INSTANCE_INITIALIZER;
+std::string LogSeverityToString(logging::LogSeverity level) {
+ switch (level) {
+ case logging::LOG_ERROR:
+ return "Error";
+ case logging::LOG_WARNING:
+ return "Warning";
+ case logging::LOG_INFO:
+ return "Info";
+ }
+
+ NOTREACHED();
+ return "Unknown Log Severity";
+}
+
+// Need helper function since the LOG macro can't handle argument values.
+void LogToConsole(logging::LogSeverity level, std::string log_event) {
tzik 2013/05/22 09:30:54 const ref?
calvinlo 2013/05/23 10:00:15 Done.
+ switch (level) {
+ case logging::LOG_ERROR:
+ LOG(ERROR) << log_event;
+ return;
+ case logging::LOG_WARNING:
+ LOG(WARNING) << log_event;
+ return;
+ case logging::LOG_INFO:
+ LOG(INFO) << log_event;
+ return;
+ }
+
+ LOG(FATAL) << "LogToConsole() missing case for LogSeverity=" << level;
+ NOTREACHED();
+}
+
} // namespace
-void Log(const char* format, ...) {
+// Static
nhiroki 2013/05/22 09:18:24 nit: I think you don't have to add "Static" commen
calvinlo 2013/05/23 10:00:15 Done.
+void ClearLog() {
+ g_logger.Pointer()->SetHistorySize(google_apis::kDefaultHistorySize);
+}
+
+// Static
nhiroki 2013/05/22 09:18:24 ditto.
calvinlo 2013/05/23 10:00:15 Done.
+void Log(logging::LogSeverity level, const char* format, ...) {
+ // Ignore log if level is not high enough.
+ if (level < logging::GetMinLogLevel())
+ return;
+
std::string what;
va_list args;
@@ -28,9 +70,14 @@ void Log(const char* format, ...) {
// On thread-safety: LazyInstance guarantees thread-safety for the object
// creation. EventLogger::Log() internally maintains the lock.
google_apis::EventLogger* ptr = g_logger.Pointer();
- ptr->Log("%s", what.c_str());
+ std::string level_string = "[" + LogSeverityToString(level) + "] ";
+ ptr->Log("%s", (level_string + what).c_str());
tzik 2013/05/22 09:35:56 Not needed in this CL, but can we add non-format v
calvinlo 2013/05/23 10:00:15 Ok thanks for explaining this offline. I will try
+
+ // Mirror log to console just in case syncfs-internals page crashes.
+ LogToConsole(level, what);
}
+// Static
nhiroki 2013/05/22 09:18:24 ditto.
calvinlo 2013/05/23 10:00:15 Done.
std::vector<google_apis::EventLogger::Event> GetLogHistory() {
google_apis::EventLogger* ptr = g_logger.Pointer();
return ptr->GetHistory();

Powered by Google App Engine
This is Rietveld 408576698