summaryrefslogtreecommitdiffstats
path: root/base/logging.cc
diff options
context:
space:
mode:
authorsiggi@chromium.org <siggi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-04 15:50:49 +0000
committersiggi@chromium.org <siggi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-04 15:50:49 +0000
commit162ac0f02a2a7a6f1909a85a222ab5da3d280d12 (patch)
treeccc49648b2197f598acaeafa4d4f58c0c0048bdd /base/logging.cc
parentce833284bfd1b0a5db62e0f3c25f48af70ae8784 (diff)
downloadchromium_src-162ac0f02a2a7a6f1909a85a222ab5da3d280d12.zip
chromium_src-162ac0f02a2a7a6f1909a85a222ab5da3d280d12.tar.gz
chromium_src-162ac0f02a2a7a6f1909a85a222ab5da3d280d12.tar.bz2
Integrate ETW with VLOG logging.
This change extends the log severities into the negative for VLOG verbosities. It also keeps track of file/line information and passes it to any registered log handler. The log level is naturally controlled by translating ETW log levels to the severities. BUG=none TEST=none Review URL: http://codereview.chromium.org/4164011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65062 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/logging.cc')
-rw-r--r--base/logging.cc32
1 files changed, 22 insertions, 10 deletions
diff --git a/base/logging.cc b/base/logging.cc
index 1ca00fb..2658519 100644
--- a/base/logging.cc
+++ b/base/logging.cc
@@ -351,7 +351,8 @@ bool BaseInitLoggingImpl(const PathChar* new_log_file,
command_line->HasSwitch(switches::kVModule)) {
g_vlog_info =
new VlogInfo(command_line->GetSwitchValueASCII(switches::kV),
- command_line->GetSwitchValueASCII(switches::kVModule));
+ command_line->GetSwitchValueASCII(switches::kVModule),
+ &min_log_level);
}
LoggingLock::Init(lock_log, new_log_file);
@@ -389,11 +390,15 @@ int GetMinLogLevel() {
return min_log_level;
}
+int GetVlogVerbosity() {
+ return std::max(-1, LOG_INFO - GetMinLogLevel());
+}
+
int GetVlogLevelHelper(const char* file, size_t N) {
DCHECK_GT(N, 0U);
return g_vlog_info ?
g_vlog_info->GetVlogLevel(base::StringPiece(file, N - 1)) :
- VlogInfo::kDefaultVlogLevel;
+ GetVlogVerbosity();
}
void SetLogItems(bool enable_process_id, bool enable_thread_id,
@@ -508,30 +513,30 @@ LogMessage::SaveLastError::~SaveLastError() {
LogMessage::LogMessage(const char* file, int line, LogSeverity severity,
int ctr)
- : severity_(severity) {
+ : severity_(severity), file_(file), line_(line) {
Init(file, line);
}
LogMessage::LogMessage(const char* file, int line, const CheckOpString& result)
- : severity_(LOG_FATAL) {
+ : severity_(LOG_FATAL), file_(file), line_(line) {
Init(file, line);
stream_ << "Check failed: " << (*result.str_);
}
LogMessage::LogMessage(const char* file, int line, LogSeverity severity,
const CheckOpString& result)
- : severity_(severity) {
+ : severity_(severity), file_(file), line_(line) {
Init(file, line);
stream_ << "Check failed: " << (*result.str_);
}
LogMessage::LogMessage(const char* file, int line)
- : severity_(LOG_INFO) {
+ : severity_(LOG_INFO), file_(file), line_(line) {
Init(file, line);
}
LogMessage::LogMessage(const char* file, int line, LogSeverity severity)
- : severity_(severity) {
+ : severity_(severity), file_(file), line_(line) {
Init(file, line);
}
@@ -569,8 +574,12 @@ void LogMessage::Init(const char* file, int line) {
}
if (log_tickcount)
stream_ << TickCount() << ':';
- stream_ << log_severity_names[severity_] << ":" << filename <<
- "(" << line << ")] ";
+ if (severity_ >= 0)
+ stream_ << log_severity_names[severity_];
+ else
+ stream_ << "VERBOSE" << -severity_;
+
+ stream_ << ":" << file << "(" << line << ")] ";
message_start_ = stream_.tellp();
}
@@ -594,8 +603,11 @@ LogMessage::~LogMessage() {
std::string str_newline(stream_.str());
// Give any log message handler first dibs on the message.
- if (log_message_handler && log_message_handler(severity_, str_newline))
+ if (log_message_handler && log_message_handler(severity_, file_, line_,
+ message_start_, str_newline)) {
+ // The handler took care of it, no further processing.
return;
+ }
if (logging_destination == LOG_ONLY_TO_SYSTEM_DEBUG_LOG ||
logging_destination == LOG_TO_BOTH_FILE_AND_SYSTEM_DEBUG_LOG) {