Chromium Code Reviews| Index: chrome/browser/sync_file_system/logger.h |
| diff --git a/chrome/browser/sync_file_system/logger.h b/chrome/browser/sync_file_system/logger.h |
| index 20a223c614a78e633a68dd0224e5fba3ec830b03..13e004734fecccce1969f97ab97f8ff289587985 100644 |
| --- a/chrome/browser/sync_file_system/logger.h |
| +++ b/chrome/browser/sync_file_system/logger.h |
| @@ -8,6 +8,8 @@ |
| #include <string> |
| #include <vector> |
| +#include "base/location.h" |
| +#include "base/logging.h" |
| #include "chrome/browser/google_apis/event_logger.h" |
| namespace sync_file_system { |
| @@ -15,9 +17,29 @@ namespace sync_file_system { |
| // base/logging.h, and breaks DCHECK() and friends. |
| namespace util { |
| +// Resets the log. |
| +void ClearLog(); |
| + |
| // Logs a message using printf format. |
| // This function can be called from any thread. |
| -void Log(const char* format, ...) PRINTF_FORMAT(1, 2); |
| +void Log(tracked_objects::Location location, |
| + logging::LogSeverity level, |
| + const char* format, |
| + ...) |
| + PRINTF_FORMAT(3, 4); |
| + |
| +// Macros to keep the file and line location of the original Log calls. |
| +// Unfortunately the second version with no args seems to be needed to keep the |
| +// compiler happy. |
| +#define SYNCFS_LOG_WITH_ARGS(severity, format, ...) \ |
| + sync_file_system::util::Log( \ |
| + FROM_HERE, logging::LOG_##severity, format, __VA_ARGS__); |
| +#define SYNCFS_LOG_WITH_NO_ARGS(severity, message) \ |
| + sync_file_system::util::Log(FROM_HERE, logging::LOG_##severity, message); |
| +#define GET_SYNCFS_LOG(_1,_2,_3,NAME,...) NAME |
| +#define SYNCFS_LOG(...) \ |
| + GET_SYNCFS_LOG(__VA_ARGS__, SYNCFS_LOG_WITH_ARGS, SYNCFS_LOG_WITH_NO_ARGS) \ |
| + (__VA_ARGS__) |
|
tzik
2013/05/24 04:08:32
Could you avoid using macros in other than simples
calvinlo
2013/05/24 05:12:43
Ok, I did a little bit more research on MARCROs an
|
| // Returns the log history. |
| // This function can be called from any thread. |