| 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 |