Fix and optimize logger (#4002)

* Fix logging switch statement.

* Remove debug_verbose_ in AllReducer.

* Don't construct the stream when not needed.

* Make default constructor deleted.

* Remove redundant IsVerbose.
This commit is contained in:
Jiaming Yuan
2018-12-17 19:23:05 +08:00
committed by GitHub
parent a2dc929598
commit c8c7b9649c
8 changed files with 59 additions and 40 deletions

View File

@@ -23,8 +23,7 @@ void dmlc::CustomLogMessage::Log(const std::string& msg) {
namespace xgboost {
ConsoleLogger::~ConsoleLogger() {
if (cur_verbosity_ == LogVerbosity::kIgnore ||
cur_verbosity_ <= global_verbosity_) {
if (ShouldLog(cur_verbosity_)) {
dmlc::CustomLogMessage::Log(BaseLogger::log_stream_.str());
}
}
@@ -46,6 +45,11 @@ ConsoleLogger::LogVerbosity ConsoleLogger::global_verbosity_ =
ConsoleLogger::DefaultVerbosity();
ConsoleLoggerParam ConsoleLogger::param_ = ConsoleLoggerParam();
bool ConsoleLogger::ShouldLog(LogVerbosity verbosity) {
return verbosity <= global_verbosity_ || verbosity == LV::kIgnore;
}
void ConsoleLogger::Configure(const std::map<std::string, std::string>& args) {
param_.InitAllowUnknown(args);
// Deprecated, but when trying to display deprecation message some R
@@ -80,7 +84,6 @@ ConsoleLogger::LogVerbosity ConsoleLogger::GlobalVerbosity() {
return global_verbosity_;
}
ConsoleLogger::ConsoleLogger() : cur_verbosity_{LogVerbosity::kInfo} {}
ConsoleLogger::ConsoleLogger(LogVerbosity cur_verb) :
cur_verbosity_{cur_verb} {}
@@ -89,11 +92,17 @@ ConsoleLogger::ConsoleLogger(
cur_verbosity_ = cur_verb;
switch (cur_verbosity_) {
case LogVerbosity::kWarning:
BaseLogger::log_stream_ << "WARNING: ";
BaseLogger::log_stream_ << "WARNING: "
<< file << ":" << line << ": ";
break;
case LogVerbosity::kDebug:
BaseLogger::log_stream_ << "DEBUG: ";
BaseLogger::log_stream_ << "DEBUG: "
<< file << ":" << line << ": ";
break;
case LogVerbosity::kInfo:
BaseLogger::log_stream_ << "INFO: ";
BaseLogger::log_stream_ << "INFO: "
<< file << ":" << line << ": ";
break;
case LogVerbosity::kIgnore:
BaseLogger::log_stream_ << file << ":" << line << ": ";
break;