mirror of
https://github.com/google/benchmark.git
synced 2025-03-15 11:40:12 +08:00
This patch does two things: 1. It overhalls the static initialization in Walltime to be simplier. It uses a static variable inside WallTime::Now() to initialize the timer. 2. Add a logging mechanism so that the -v flag actually has meaning and reimplement the CHECK macros to allow extra messages to be streamed in.
40 lines
624 B
C++
40 lines
624 B
C++
#include "log.h"
|
|
|
|
#include <iostream>
|
|
|
|
namespace benchmark {
|
|
namespace internal {
|
|
|
|
int& LoggingLevelImp() {
|
|
static int level = 0;
|
|
return level;
|
|
}
|
|
|
|
void SetLogLevel(int value) {
|
|
LoggingLevelImp() = value;
|
|
}
|
|
|
|
int GetLogLevel() {
|
|
return LoggingLevelImp();
|
|
}
|
|
|
|
class NullLogBuffer : public std::streambuf
|
|
{
|
|
public:
|
|
int overflow(int c) {
|
|
return c;
|
|
}
|
|
};
|
|
|
|
std::ostream& GetNullLogInstance() {
|
|
static NullLogBuffer log_buff;
|
|
static std::ostream null_log(&log_buff);
|
|
return null_log;
|
|
}
|
|
|
|
std::ostream& GetErrorLogInstance() {
|
|
return std::clog;
|
|
}
|
|
|
|
} // end namespace internal
|
|
} // end namespace benchmark
|