1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chromeos/device_event_log.h"
9 #include "base/logging.h"
10 #include "chromeos/device_event_log_impl.h"
14 namespace device_event_log
{
18 const size_t kDefaultMaxEntries
= 4000;
20 DeviceEventLogImpl
* g_device_event_log
= NULL
;
24 const LogLevel kDefaultLogLevel
= LOG_LEVEL_EVENT
;
26 void Initialize(size_t max_entries
) {
27 CHECK(!g_device_event_log
);
29 max_entries
= kDefaultMaxEntries
;
30 g_device_event_log
= new DeviceEventLogImpl(max_entries
);
34 delete g_device_event_log
;
35 g_device_event_log
= NULL
;
38 void AddEntry(const char* file
,
42 const std::string
& event
) {
43 if (g_device_event_log
) {
44 g_device_event_log
->AddEntry(file
, line
, type
, level
, event
);
46 DeviceEventLogImpl::SendToVLogOrErrorLog(file
, line
, type
, level
, event
);
50 void AddEntryWithDescription(const char* file
,
54 const std::string
& event
,
55 const std::string
& desc
) {
56 std::string event_with_desc
= event
;
58 event_with_desc
+= ": " + desc
;
59 AddEntry(file
, line
, type
, level
, event_with_desc
);
62 std::string
GetAsString(StringOrder order
,
63 const std::string
& format
,
64 const std::string
& types
,
67 if (!g_device_event_log
)
68 return "DeviceEventLog not initialized.";
69 return g_device_event_log
->GetAsString(order
, format
, types
, max_level
,
75 DeviceEventLogInstance::DeviceEventLogInstance(const char* file
,
77 device_event_log::LogType type
,
78 device_event_log::LogLevel level
)
79 : file_(file
), line_(line
), type_(type
), level_(level
) {
82 DeviceEventLogInstance::~DeviceEventLogInstance() {
83 device_event_log::AddEntry(file_
, line_
, type_
, level_
, stream_
.str());
86 } // namespace internal
88 } // namespace device_event_log
90 } // namespace chromeos