| Index: base/logging_win.cc
|
| diff --git a/base/logging_win.cc b/base/logging_win.cc
|
| index 319ae8a9d38186aa7ffc6466f574c2a795a1832c..11e8e3e4d3a0442699d96b67f9e128e5561141a5 100644
|
| --- a/base/logging_win.cc
|
| +++ b/base/logging_win.cc
|
| @@ -3,6 +3,7 @@
|
| // found in the LICENSE file.
|
|
|
| #include "base/logging_win.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/memory/singleton.h"
|
| #include <initguid.h> // NOLINT
|
|
|
| @@ -17,13 +18,18 @@ DEFINE_GUID(kLogEventId,
|
| LogEventProvider::LogEventProvider() : old_log_level_(LOG_NONE) {
|
| }
|
|
|
| +LogEventProvider::~LogEventProvider() {}
|
| +
|
| LogEventProvider* LogEventProvider::GetInstance() {
|
| return base::Singleton<LogEventProvider, base::StaticMemorySingletonTraits<
|
| LogEventProvider>>::get();
|
| }
|
|
|
| -bool LogEventProvider::LogMessage(logging::LogSeverity severity,
|
| - const char* file, int line, size_t message_start,
|
| +void LogEventProvider::WinLogMessageListener::OnMessage(
|
| + logging::LogSeverity severity,
|
| + const char* file,
|
| + int line,
|
| + size_t message_start,
|
| const std::string& message) {
|
| EtwEventLevel level = TRACE_LEVEL_NONE;
|
|
|
| @@ -51,7 +57,7 @@ bool LogEventProvider::LogMessage(logging::LogSeverity severity,
|
| // or if we're post-atexit handling.
|
| LogEventProvider* provider = LogEventProvider::GetInstance();
|
| if (provider == NULL || level > provider->enable_level())
|
| - return false;
|
| + return;
|
|
|
| // And now log the event.
|
| if (provider->enable_flags() & ENABLE_LOG_MESSAGE_ONLY) {
|
| @@ -88,11 +94,7 @@ bool LogEventProvider::LogMessage(logging::LogSeverity severity,
|
| provider->Log(event.get());
|
| }
|
|
|
| - // Don't increase verbosity in other log destinations.
|
| - if (severity < provider->old_log_level_)
|
| - return true;
|
| -
|
| - return false;
|
| + // The log verbosity for other log destinations is increased.
|
| }
|
|
|
| void LogEventProvider::Initialize(const GUID& provider_name) {
|
| @@ -101,12 +103,14 @@ void LogEventProvider::Initialize(const GUID& provider_name) {
|
| provider->set_provider_name(provider_name);
|
| provider->Register();
|
|
|
| - // Register our message handler with logging.
|
| - SetLogMessageHandler(LogMessage);
|
| + // Register our message listener with logging.
|
| + provider->log_listener_ = base::MakeUnique<WinLogMessageListener>();
|
| }
|
|
|
| void LogEventProvider::Uninitialize() {
|
| - LogEventProvider::GetInstance()->Unregister();
|
| + LogEventProvider* provider = LogEventProvider::GetInstance();
|
| + provider->Unregister();
|
| + provider->log_listener_.reset();
|
| }
|
|
|
| void LogEventProvider::OnEventsEnabled() {
|
|
|