Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(473)

Side by Side Diff: chrome/browser/drive/event_logger.h

Issue 20609006: Add severity info to drive::EventLogger. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase - the 2nd try - Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_DRIVE_EVENT_LOGGER_H_ 5 #ifndef CHROME_BROWSER_DRIVE_EVENT_LOGGER_H_
6 #define CHROME_BROWSER_DRIVE_EVENT_LOGGER_H_ 6 #define CHROME_BROWSER_DRIVE_EVENT_LOGGER_H_
7 7
8 #include <stdarg.h> // va_list
9 #include <deque> 8 #include <deque>
10 #include <string> 9 #include <string>
11 #include <vector> 10 #include <vector>
12 11
13 #include "base/basictypes.h" 12 #include "base/basictypes.h"
14 #include "base/compiler_specific.h" 13 #include "base/compiler_specific.h"
14 #include "base/logging.h"
15 #include "base/synchronization/lock.h" 15 #include "base/synchronization/lock.h"
16 #include "base/time/time.h" 16 #include "base/time/time.h"
17 17
18 namespace drive { 18 namespace drive {
19 19
20 // The default history size used by EventLogger. 20 // The default history size used by EventLogger.
21 const int kDefaultHistorySize = 1000; 21 const int kDefaultHistorySize = 1000;
22 22
23 // EventLogger is used to collect and expose text messages for diagnosing 23 // EventLogger is used to collect and expose text messages for diagnosing
24 // behaviors of Google APIs stuff. For instance, the collected messages are 24 // behaviors of Google APIs stuff. For instance, the collected messages are
25 // exposed to chrome:drive-internals. 25 // exposed to chrome:drive-internals.
26 class EventLogger { 26 class EventLogger {
27 public: 27 public:
28 // Represents a single event log. 28 // Represents a single event log.
29 struct Event { 29 struct Event {
30 Event(int id, const std::string& what); 30 Event(int id, logging::LogSeverity severity, const std::string& what);
31 int id; // Monotonically increasing ID starting from 0. 31 int id; // Monotonically increasing ID starting from 0.
32 logging::LogSeverity severity; // Severity of the event.
32 base::Time when; // When the event occurred. 33 base::Time when; // When the event occurred.
33 std::string what; // What happened. 34 std::string what; // What happened.
34 }; 35 };
35 36
36 // Creates an event logger that keeps the latest kDefaultHistorySize events. 37 // Creates an event logger that keeps the latest kDefaultHistorySize events.
37 EventLogger(); 38 EventLogger();
38 ~EventLogger(); 39 ~EventLogger();
39 40
40 // Logs a message using printf format. 41 // Logs a message and its severity.
41 // Can be called from any thread as long as the object is alive. 42 // Can be called from any thread as long as the object is alive.
42 // Note that PRINTF_FORMAT should be (2, 3) instead of (1, 2) as this is a 43 void Log(logging::LogSeverity severity, const std::string& what);
43 // C++ member function.
44 void Log(const char* format, ...) PRINTF_FORMAT(2, 3);
45 44
46 // Sets the history size. The existing history is cleared. 45 // Sets the history size. The existing history is cleared.
47 // Can be called from any thread as long as the object is alive. 46 // Can be called from any thread as long as the object is alive.
48 void SetHistorySize(size_t history_size); 47 void SetHistorySize(size_t history_size);
49 48
50 // Gets the list of latest events (the oldest event comes first). 49 // Gets the list of latest events (the oldest event comes first).
51 // Can be called from any thread as long as the object is alive. 50 // Can be called from any thread as long as the object is alive.
52 std::vector<Event> GetHistory(); 51 std::vector<Event> GetHistory();
53 52
54 private: 53 private:
55 std::deque<Event> history_; // guarded by lock_. 54 std::deque<Event> history_; // guarded by lock_.
56 size_t history_size_; // guarded by lock_. 55 size_t history_size_; // guarded by lock_.
57 int next_event_id_; // guarded by lock_. 56 int next_event_id_; // guarded by lock_.
58 base::Lock lock_; 57 base::Lock lock_;
59 58
60 DISALLOW_COPY_AND_ASSIGN(EventLogger); 59 DISALLOW_COPY_AND_ASSIGN(EventLogger);
61 }; 60 };
62 61
63 } // namespace drive 62 } // namespace drive
64 63
65 #endif // CHROME_BROWSER_DRIVE_EVENT_LOGGER_H_ 64 #endif // CHROME_BROWSER_DRIVE_EVENT_LOGGER_H_
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/extensions/file_manager/private_api_mount.cc ('k') | chrome/browser/drive/event_logger.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698