Merge raw and shared pointer log method impls

Summary:
Calling rocksdb::Log, rocksdb::Info, etc with a `shared_ptr<Logger>` should behave the same as calling those functions with a `Logger *`. This PR achieves it by making the `shared_ptr<Logger>` versions delegate to the `Logger *` versions.

Closes #3689
Closes https://github.com/facebook/rocksdb/pull/3710

Differential Revision: D7595557

Pulled By: ajkr

fbshipit-source-id: 64dd7f20fd42dc821bac7b8032705c35b483e00d
main
Steven Fackler 7 years ago committed by Facebook Github Bot
parent c81b0abedd
commit 1f5457ef21
  1. 111
      env/env.cc

111
env/env.cc vendored

@ -95,13 +95,17 @@ void LogFlush(Logger *info_log) {
} }
} }
void Log(Logger* info_log, const char* format, ...) { static void Logv(Logger *info_log, const char* format, va_list ap) {
if (info_log && info_log->GetInfoLogLevel() <= InfoLogLevel::INFO_LEVEL) { if (info_log && info_log->GetInfoLogLevel() <= InfoLogLevel::INFO_LEVEL) {
info_log->Logv(InfoLogLevel::INFO_LEVEL, format, ap);
}
}
void Log(Logger* info_log, const char* format, ...) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(InfoLogLevel::INFO_LEVEL, format, ap); Logv(info_log, format, ap);
va_end(ap); va_end(ap);
}
} }
void Logger::Logv(const InfoLogLevel log_level, const char* format, va_list ap) { void Logger::Logv(const InfoLogLevel log_level, const char* format, va_list ap) {
@ -126,152 +130,161 @@ void Logger::Logv(const InfoLogLevel log_level, const char* format, va_list ap)
} }
} }
static void Logv(const InfoLogLevel log_level, Logger *info_log, const char *format, va_list ap) {
void Log(const InfoLogLevel log_level, Logger* info_log, const char* format,
...) {
if (info_log && info_log->GetInfoLogLevel() <= log_level) { if (info_log && info_log->GetInfoLogLevel() <= log_level) {
va_list ap;
va_start(ap, format);
if (log_level == InfoLogLevel::HEADER_LEVEL) { if (log_level == InfoLogLevel::HEADER_LEVEL) {
info_log->LogHeader(format, ap); info_log->LogHeader(format, ap);
} else { } else {
info_log->Logv(log_level, format, ap); info_log->Logv(log_level, format, ap);
} }
}
}
void Log(const InfoLogLevel log_level, Logger* info_log, const char* format,
...) {
va_list ap;
va_start(ap, format);
Logv(log_level, info_log, format, ap);
va_end(ap); va_end(ap);
}
static void Headerv(Logger *info_log, const char *format, va_list ap) {
if (info_log) {
info_log->LogHeader(format, ap);
} }
} }
void Header(Logger* info_log, const char* format, ...) { void Header(Logger* info_log, const char* format, ...) {
if (info_log) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->LogHeader(format, ap); Headerv(info_log, format, ap);
va_end(ap); va_end(ap);
}
static void Debugv(Logger* info_log, const char* format, va_list ap) {
if (info_log && info_log->GetInfoLogLevel() <= InfoLogLevel::DEBUG_LEVEL) {
info_log->Logv(InfoLogLevel::DEBUG_LEVEL, format, ap);
} }
} }
void Debug(Logger* info_log, const char* format, ...) { void Debug(Logger* info_log, const char* format, ...) {
if (info_log && info_log->GetInfoLogLevel() <= InfoLogLevel::DEBUG_LEVEL) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(InfoLogLevel::DEBUG_LEVEL, format, ap); Debugv(info_log, format, ap);
va_end(ap); va_end(ap);
}
static void Infov(Logger* info_log, const char* format, va_list ap) {
if (info_log && info_log->GetInfoLogLevel() <= InfoLogLevel::INFO_LEVEL) {
info_log->Logv(InfoLogLevel::INFO_LEVEL, format, ap);
} }
} }
void Info(Logger* info_log, const char* format, ...) { void Info(Logger* info_log, const char* format, ...) {
if (info_log && info_log->GetInfoLogLevel() <= InfoLogLevel::INFO_LEVEL) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(InfoLogLevel::INFO_LEVEL, format, ap); Infov(info_log, format, ap);
va_end(ap); va_end(ap);
}
static void Warnv(Logger* info_log, const char* format, va_list ap) {
if (info_log && info_log->GetInfoLogLevel() <= InfoLogLevel::WARN_LEVEL) {
info_log->Logv(InfoLogLevel::WARN_LEVEL, format, ap);
} }
} }
void Warn(Logger* info_log, const char* format, ...) { void Warn(Logger* info_log, const char* format, ...) {
if (info_log && info_log->GetInfoLogLevel() <= InfoLogLevel::WARN_LEVEL) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(InfoLogLevel::WARN_LEVEL, format, ap); Warnv(info_log, format, ap);
va_end(ap); va_end(ap);
}
static void Errorv(Logger* info_log, const char* format, va_list ap) {
if (info_log && info_log->GetInfoLogLevel() <= InfoLogLevel::ERROR_LEVEL) {
info_log->Logv(InfoLogLevel::ERROR_LEVEL, format, ap);
} }
} }
void Error(Logger* info_log, const char* format, ...) { void Error(Logger* info_log, const char* format, ...) {
if (info_log && info_log->GetInfoLogLevel() <= InfoLogLevel::ERROR_LEVEL) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(InfoLogLevel::ERROR_LEVEL, format, ap); Errorv(info_log, format, ap);
va_end(ap); va_end(ap);
}
static void Fatalv(Logger* info_log, const char* format, va_list ap) {
if (info_log && info_log->GetInfoLogLevel() <= InfoLogLevel::FATAL_LEVEL) {
info_log->Logv(InfoLogLevel::FATAL_LEVEL, format, ap);
} }
} }
void Fatal(Logger* info_log, const char* format, ...) { void Fatal(Logger* info_log, const char* format, ...) {
if (info_log && info_log->GetInfoLogLevel() <= InfoLogLevel::FATAL_LEVEL) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(InfoLogLevel::FATAL_LEVEL, format, ap); Fatalv(info_log, format, ap);
va_end(ap); va_end(ap);
}
} }
void LogFlush(const shared_ptr<Logger>& info_log) { void LogFlush(const shared_ptr<Logger>& info_log) {
if (info_log) { LogFlush(info_log.get());
info_log->Flush();
}
} }
void Log(const InfoLogLevel log_level, const shared_ptr<Logger>& info_log, void Log(const InfoLogLevel log_level, const shared_ptr<Logger>& info_log,
const char* format, ...) { const char* format, ...) {
if (info_log) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(log_level, format, ap); Logv(log_level, info_log.get(), format, ap);
va_end(ap); va_end(ap);
}
} }
void Header(const shared_ptr<Logger>& info_log, const char* format, ...) { void Header(const shared_ptr<Logger>& info_log, const char* format, ...) {
if (info_log) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->LogHeader(format, ap); Headerv(info_log.get(), format, ap);
va_end(ap); va_end(ap);
}
} }
void Debug(const shared_ptr<Logger>& info_log, const char* format, ...) { void Debug(const shared_ptr<Logger>& info_log, const char* format, ...) {
if (info_log) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(InfoLogLevel::DEBUG_LEVEL, format, ap); Debugv(info_log.get(), format, ap);
va_end(ap); va_end(ap);
}
} }
void Info(const shared_ptr<Logger>& info_log, const char* format, ...) { void Info(const shared_ptr<Logger>& info_log, const char* format, ...) {
if (info_log) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(InfoLogLevel::INFO_LEVEL, format, ap); Infov(info_log.get(), format, ap);
va_end(ap); va_end(ap);
}
} }
void Warn(const shared_ptr<Logger>& info_log, const char* format, ...) { void Warn(const shared_ptr<Logger>& info_log, const char* format, ...) {
if (info_log) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(InfoLogLevel::WARN_LEVEL, format, ap); Warnv(info_log.get(), format, ap);
va_end(ap); va_end(ap);
}
} }
void Error(const shared_ptr<Logger>& info_log, const char* format, ...) { void Error(const shared_ptr<Logger>& info_log, const char* format, ...) {
if (info_log) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(InfoLogLevel::ERROR_LEVEL, format, ap); Errorv(info_log.get(), format, ap);
va_end(ap); va_end(ap);
}
} }
void Fatal(const shared_ptr<Logger>& info_log, const char* format, ...) { void Fatal(const shared_ptr<Logger>& info_log, const char* format, ...) {
if (info_log) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(InfoLogLevel::FATAL_LEVEL, format, ap); Fatalv(info_log.get(), format, ap);
va_end(ap); va_end(ap);
}
} }
void Log(const shared_ptr<Logger>& info_log, const char* format, ...) { void Log(const shared_ptr<Logger>& info_log, const char* format, ...) {
if (info_log) {
va_list ap; va_list ap;
va_start(ap, format); va_start(ap, format);
info_log->Logv(InfoLogLevel::INFO_LEVEL, format, ap); Logv(info_log.get(), format, ap);
va_end(ap); va_end(ap);
}
} }
Status WriteStringToFile(Env* env, const Slice& data, const std::string& fname, Status WriteStringToFile(Env* env, const Slice& data, const std::string& fname,

Loading…
Cancel
Save