blob: 9815c11eb562ee26fa0ffb6f4ede72ecefb03486 [file] [log] [blame]
[email protected]3b33bd2112012-11-14 10:59:331// Copyright (c) 2012 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.
4
lukasza8acc4eb2015-07-20 20:57:205#include "components/drive/event_logger.h"
[email protected]3b33bd2112012-11-14 10:59:336
[email protected]4c511232013-07-24 17:18:527#include "base/logging.h"
[email protected]d8830562013-06-10 22:01:548#include "base/strings/stringprintf.h"
[email protected]76de6d1c2013-04-19 03:50:179
[email protected]e50af7652013-06-20 06:39:3110namespace drive {
[email protected]3b33bd2112012-11-14 10:59:3311
[email protected]83d9d632013-08-01 11:47:1312EventLogger::Event::Event(
13 int id, logging::LogSeverity severity, const std::string& what)
[email protected]3b33bd2112012-11-14 10:59:3314 : id(id),
[email protected]83d9d632013-08-01 11:47:1315 severity(severity),
[email protected]3b33bd2112012-11-14 10:59:3316 when(base::Time::Now()),
17 what(what) {
18}
19
[email protected]0cd6c7f2013-04-24 05:27:0220EventLogger::EventLogger()
21 : history_size_(kDefaultHistorySize),
[email protected]3b33bd2112012-11-14 10:59:3322 next_event_id_(0) {
23}
24
25EventLogger::~EventLogger() {
26}
27
[email protected]9475cc72014-02-05 01:50:5728void EventLogger::LogRawString(logging::LogSeverity severity,
29 const std::string& what) {
[email protected]0cd6c7f2013-04-24 05:27:0230 base::AutoLock auto_lock(lock_);
[email protected]83d9d632013-08-01 11:47:1331 history_.push_back(Event(next_event_id_, severity, what));
[email protected]3b33bd2112012-11-14 10:59:3332 ++next_event_id_;
33 if (history_.size() > history_size_)
34 history_.pop_front();
35}
36
[email protected]9475cc72014-02-05 01:50:5737void EventLogger::Log(logging::LogSeverity severity, const char* format, ...) {
38 std::string what;
39
40 va_list args;
41 va_start(args, format);
42 base::StringAppendV(&what, format, args);
43 va_end(args);
44
45 DVLOG(1) << what;
46 LogRawString(severity, what);
47}
48
[email protected]0cd6c7f2013-04-24 05:27:0249void EventLogger::SetHistorySize(size_t history_size) {
50 base::AutoLock auto_lock(lock_);
51 history_.clear();
52 history_size_ = history_size;
53}
54
55std::vector<EventLogger::Event> EventLogger::GetHistory() {
56 base::AutoLock auto_lock(lock_);
57 std::vector<Event> output;
58 output.assign(history_.begin(), history_.end());
59 return output;
60}
61
62
[email protected]e50af7652013-06-20 06:39:3163} // namespace drive