diff options
author | siggi@chromium.org <siggi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-04 15:50:49 +0000 |
---|---|---|
committer | siggi@chromium.org <siggi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-04 15:50:49 +0000 |
commit | 162ac0f02a2a7a6f1909a85a222ab5da3d280d12 (patch) | |
tree | ccc49648b2197f598acaeafa4d4f58c0c0048bdd /base/logging.cc | |
parent | ce833284bfd1b0a5db62e0f3c25f48af70ae8784 (diff) | |
download | chromium_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.cc | 32 |
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) { |