8 #ifndef STORAGE_LEVELDB_UTIL_POSIX_LOGGER_H_
9 #define STORAGE_LEVELDB_UTIL_POSIX_LOGGER_H_
28 virtual void Logv(
const char* format, va_list ap) {
29 const uint64_t thread_id = (*gettid_)();
34 for (
int iter = 0; iter < 2; iter++) {
38 bufsize =
sizeof(buffer);
42 base =
new char[bufsize];
45 char* limit = base + bufsize;
47 struct timeval now_tv;
48 gettimeofday(&now_tv, NULL);
49 const time_t seconds = now_tv.tv_sec;
51 localtime_r(&seconds, &t);
52 p += snprintf(p, limit - p,
53 "%04d/%02d/%02d-%02d:%02d:%02d.%06d %llx ",
60 static_cast<int>(now_tv.tv_usec),
61 static_cast<long long unsigned int>(thread_id));
66 va_copy(backup_ap, ap);
67 p += vsnprintf(p, limit - p, format, backup_ap);
81 if (p == base || p[-1] !=
'\n') {
86 fwrite(base, 1, p - base, file_);
98 #endif // STORAGE_LEVELDB_UTIL_POSIX_LOGGER_H_
virtual void Logv(const char *format, va_list ap)
PosixLogger(FILE *f, uint64_t(*gettid)())
unsigned long long uint64_t