OLD | NEW |
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium OS 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 CRASH_REPORTER_SYSTEM_LOGGING_H_ | 5 #ifndef CRASH_REPORTER_SYSTEM_LOGGING_H_ |
6 #define CRASH_REPORTER_SYSTEM_LOGGING_H_ | 6 #define CRASH_REPORTER_SYSTEM_LOGGING_H_ |
7 | 7 |
| 8 #include <stdarg.h> |
8 #include <string> | 9 #include <string> |
9 | 10 |
10 class SystemLogging { | 11 class SystemLogging { |
11 public: | 12 public: |
12 virtual void Initialize(const char *ident) = 0; | 13 virtual void Initialize(const char *ident) = 0; |
13 virtual void LogInfo(const char *format, ...) = 0; | 14 virtual void LogInfo(const char *format, ...) = 0; |
14 virtual void LogWarning(const char *format, ...) = 0; | 15 virtual void LogWarning(const char *format, ...) = 0; |
15 virtual void LogError(const char *format, ...) = 0; | 16 virtual void LogError(const char *format, ...) = 0; |
| 17 virtual void set_accumulator(std::string *accumulator) = 0; |
16 }; | 18 }; |
17 | 19 |
| 20 // SystemLoggingImpl implements SystemLogging but adds the |
| 21 // capability of accumulating the log to a STL string. |
18 class SystemLoggingImpl : public SystemLogging { | 22 class SystemLoggingImpl : public SystemLogging { |
19 public: | 23 public: |
20 SystemLoggingImpl(); | 24 SystemLoggingImpl(); |
21 virtual ~SystemLoggingImpl(); | 25 virtual ~SystemLoggingImpl(); |
22 virtual void Initialize(const char *ident); | 26 virtual void Initialize(const char *ident); |
23 virtual void LogInfo(const char *format, ...); | 27 virtual void LogInfo(const char *format, ...); |
24 virtual void LogWarning(const char *format, ...); | 28 virtual void LogWarning(const char *format, ...); |
25 virtual void LogError(const char *format, ...); | 29 virtual void LogError(const char *format, ...); |
| 30 virtual void set_accumulator(std::string *accumulator) { |
| 31 accumulator_ = accumulator; |
| 32 } |
26 private: | 33 private: |
27 static std::string identity_; | 34 static std::string identity_; |
| 35 static std::string *accumulator_; |
| 36 void LogWithLevel(int level, const char *format, |
| 37 va_list arg_list); |
28 }; | 38 }; |
29 | 39 |
30 #endif // CRASH_REPORTER_SYSTEM_LOGGING_H_ | 40 #endif // CRASH_REPORTER_SYSTEM_LOGGING_H_ |
OLD | NEW |