| 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..a5486477ae5e2b01964560dc399dbf9b2a9fb37a
|
| --- /dev/null
|
| +++ b/chromeos/device_event_log.cc
|
| @@ -0,0 +1,90 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// 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 "base/logging.h"
|
| +#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) {
|
| + CHECK(!g_device_event_log);
|
| + if (max_entries == 0)
|
| + max_entries = kDefaultMaxEntries;
|
| + g_device_event_log = new DeviceEventLogImpl(max_entries);
|
| +}
|
| +
|
| +void Shutdown() {
|
| + delete g_device_event_log;
|
| + 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
|
|
|