| 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_accumulating(bool value) = 0; |
| 18 virtual std::string get_accumulator() = 0; |
| 16 }; | 19 }; |
| 17 | 20 |
| 21 // SystemLoggingImpl implements SystemLogging but adds the |
| 22 // capability of accumulating the log to a STL string. |
| 18 class SystemLoggingImpl : public SystemLogging { | 23 class SystemLoggingImpl : public SystemLogging { |
| 19 public: | 24 public: |
| 20 SystemLoggingImpl(); | 25 SystemLoggingImpl(); |
| 21 virtual ~SystemLoggingImpl(); | 26 virtual ~SystemLoggingImpl(); |
| 22 virtual void Initialize(const char *ident); | 27 virtual void Initialize(const char *ident); |
| 23 virtual void LogInfo(const char *format, ...); | 28 virtual void LogInfo(const char *format, ...); |
| 24 virtual void LogWarning(const char *format, ...); | 29 virtual void LogWarning(const char *format, ...); |
| 25 virtual void LogError(const char *format, ...); | 30 virtual void LogError(const char *format, ...); |
| 31 virtual void set_accumulating(bool value) { |
| 32 is_accumulating_ = value; |
| 33 } |
| 34 virtual std::string get_accumulator() { |
| 35 return accumulator_; |
| 36 } |
| 26 private: | 37 private: |
| 27 static std::string identity_; | 38 static std::string identity_; |
| 39 std::string accumulator_; |
| 40 bool is_accumulating_; |
| 41 void LogWithLevel(int level, const char *format, |
| 42 va_list arg_list); |
| 28 }; | 43 }; |
| 29 | 44 |
| 30 #endif // CRASH_REPORTER_SYSTEM_LOGGING_H_ | 45 #endif // CRASH_REPORTER_SYSTEM_LOGGING_H_ |
| OLD | NEW |