diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2018-01-06 11:30:24 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2018-01-06 11:30:24 +0000 |
commit | c7090180503f263c60ec34844992e0e8d4bea85a (patch) | |
tree | 6ecc5b2e16856db49de056738b36e1ba103d3049 /yage/core/logger.cpp | |
parent | cf4c73f2a75b470a4d4c4167105f92bc46f1926c (diff) | |
parent | 07012cf0982d3f86aebe83b5bdc4a67332c635da (diff) | |
download | YAGE-c7090180503f263c60ec34844992e0e8d4bea85a.tar.gz YAGE-c7090180503f263c60ec34844992e0e8d4bea85a.zip |
Merge branch 'develop'
Diffstat (limited to 'yage/core/logger.cpp')
-rw-r--r-- | yage/core/logger.cpp | 55 |
1 files changed, 41 insertions, 14 deletions
diff --git a/yage/core/logger.cpp b/yage/core/logger.cpp index f661e826..1ae04d0b 100644 --- a/yage/core/logger.cpp +++ b/yage/core/logger.cpp @@ -19,29 +19,51 @@ namespace yage { -Logger::Logger() : active_(Active::create()) +Logger::Logger() : active_(Active::create()), min_level_(LogLevel::INFO) { add(makeConsoleSink()); - add(makeFileSink("yage.log")); } -LogMessage Logger::operator()(const std::string &fileName, int lineNum) +Logger::Logger(const std::string &file_path) + : active_(Active::create()), min_level_(LogLevel::INFO) { - return LogMessage(this, fileName, lineNum); + add(makeConsoleSink()); + add(makeFileSink(file_path)); +} + +Logger::Logger(LogLevel min_level) + : active_(Active::create()), min_level_(min_level) +{ + add(makeConsoleSink()); +} + +Logger::Logger(LogLevel min_level, const std::string &file_path) + : active_(Active::create()), min_level_(min_level) +{ + add(makeConsoleSink()); + add(makeFileSink(file_path)); +} + +LogMessage Logger::operator()(LogLevel level, const std::string &fileName, + int lineNum) +{ + return LogMessage(this, level, fileName, lineNum); } void Logger::flush(const LogMessage *msg) { - std::string asString(msg->buffer_.str()); + if (static_cast<int>(msg->meta_.level) >= static_cast<int>(min_level_)) { + std::string asString(msg->buffer_.str()); - auto &&sinks = sinks_; - auto &&meta = msg->meta_; + auto &&sinks = sinks_; + auto &&meta = msg->meta_; - active_->send([=] { - for (auto &&sink : sinks) { - sink.write(meta, asString); - } - }); + active_->send([=] { + for (auto &&sink : sinks) { + sink.write(meta, asString); + } + }); + } } void Logger::add(const LogSink &sink) @@ -65,9 +87,14 @@ void Logger::clear() Logger &Logger::instance() { - static Logger gLogger; + static Logger y_logger(LogLevel::INFO, "yage.log"); + + return y_logger; +} - return gLogger; +void Logger::setLevel(LogLevel min_level) +{ + min_level_ = min_level; } } // namespace yage |