Chromium Code Reviews| Index: chromeos/device_event_log.cc |
| diff --git a/chromeos/device_event_log.cc b/chromeos/device_event_log.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..07bdef2d35b0d47422017787c558d8d9cbf4a005 |
| --- /dev/null |
| +++ b/chromeos/device_event_log.cc |
| @@ -0,0 +1,94 @@ |
| +// Copyright (c) 2014 The Chromium Authors. All rights reserved. |
|
Ben Chan
2014/12/02 21:42:53
drop (c)
http://www.chromium.org/developers/codin
stevenjb
2014/12/03 00:16:03
Done.
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chromeos/device_event_log.h" |
| + |
| +#include <string> |
| + |
| +#include "chromeos/device_event_log_impl.h" |
| + |
| +namespace chromeos { |
| + |
| +namespace device_event_log { |
| + |
| +namespace { |
| + |
| +const size_t kDefaultMaxEntries = 4000; |
| + |
| +DeviceEventLogImpl* g_device_event_log = NULL; |
| + |
| +} // namespace |
| + |
| +const LogLevel kDefaultLogLevel = LOG_LEVEL_EVENT; |
| + |
| +void Initialize(size_t max_entries) { |
| + if (max_entries == 0) |
| + max_entries = kDefaultMaxEntries; |
| + if (g_device_event_log) |
|
jennyz
2014/12/02 22:16:08
Is it normal to re-initialize g_device_event_log w
stevenjb
2014/12/03 00:16:03
I don't know about "normal", but it is harmless. I
jennyz
2014/12/03 19:12:43
Acknowledged.
|
| + delete g_device_event_log; // resets log |
| + g_device_event_log = new DeviceEventLogImpl(max_entries); |
| +} |
| + |
| +void Shutdown() { |
| + delete g_device_event_log; |
| + g_device_event_log = NULL; |
| +} |
| + |
| +bool IsInitialized() { |
| + return g_device_event_log != NULL; |
| +} |
| + |
| +void AddEntry(const char* file, |
| + int line, |
| + LogType type, |
| + LogLevel level, |
| + const std::string& event) { |
| + if (g_device_event_log) { |
| + g_device_event_log->AddEntry(file, line, type, level, event); |
| + } else { |
| + DeviceEventLogImpl::SendToVLogOrErrorLog(file, line, type, level, event); |
| + } |
| +} |
| + |
| +void AddEntryWithDescription(const char* file, |
| + int line, |
| + LogType type, |
| + LogLevel level, |
| + const std::string& event, |
| + const std::string& desc) { |
| + std::string event_with_desc = event; |
| + if (!desc.empty()) |
| + event_with_desc += ": " + desc; |
| + AddEntry(file, line, type, level, event_with_desc); |
| +} |
| + |
| +std::string GetAsString(StringOrder order, |
| + const std::string& format, |
| + LogType log_type, |
| + LogLevel max_level, |
| + size_t max_events) { |
| + if (!g_device_event_log) |
| + return "DeviceEventLog not initialized."; |
| + return g_device_event_log->GetAsString(order, format, log_type, max_level, |
| + max_events); |
| +} |
| + |
| +namespace internal { |
| + |
| +DeviceEventLogInstance::DeviceEventLogInstance(const char* file, |
| + int line, |
| + device_event_log::LogType type, |
| + device_event_log::LogLevel level) |
| + : file_(file), line_(line), type_(type), level_(level) { |
| +} |
| + |
| +DeviceEventLogInstance::~DeviceEventLogInstance() { |
| + device_event_log::AddEntry(file_, line_, type_, level_, stream_.str()); |
| +} |
| + |
| +} // namespace internal |
| + |
| +} // namespace device_event_log |
| + |
| +} // namespace chromeos |