diff --git a/logging/auto_roll_logger.cc b/logging/auto_roll_logger.cc index 223dfbe30..3109f0bc6 100644 --- a/logging/auto_roll_logger.cc +++ b/logging/auto_roll_logger.cc @@ -155,6 +155,11 @@ std::string AutoRollLogger::ValistToString(const char* format, void AutoRollLogger::LogInternal(const char* format, ...) { mutex_.AssertHeld(); + + if (!logger_) { + return; + } + va_list args; va_start(args, format); logger_->Logv(format, args); @@ -163,7 +168,10 @@ void AutoRollLogger::LogInternal(const char* format, ...) { void AutoRollLogger::Logv(const char* format, va_list ap) { assert(GetStatus().ok()); - + if (!logger_) { + return; + } + std::shared_ptr logger; { MutexLock l(&mutex_); @@ -207,6 +215,10 @@ void AutoRollLogger::WriteHeaderInfo() { } void AutoRollLogger::LogHeader(const char* format, va_list args) { + if (!logger_) { + return; + } + // header message are to be retained in memory. Since we cannot make any // assumptions about the data contained in va_list, we will retain them as // strings diff --git a/logging/auto_roll_logger.h b/logging/auto_roll_logger.h index a14fbfd58..45cbc2697 100644 --- a/logging/auto_roll_logger.h +++ b/logging/auto_roll_logger.h @@ -41,6 +41,10 @@ class AutoRollLogger : public Logger { } size_t GetLogFileSize() const override { + if (!logger_) { + return 0; + } + std::shared_ptr logger; { MutexLock l(&mutex_);