X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flogger.h;h=3a10f0e89177e10c071b97cd389c79e4d46a1404;hb=5e00719d0c63e306786ff36df61797cdbc86f3e9;hp=64c131544c4cef1995ec8c8b3786b7355f90ee36;hpb=82c7d6187fdaeaa1b9cfbd6637d9b047a78f17ec;p=builder.git diff --git a/source/logger.h b/source/logger.h index 64c1315..3a10f0e 100644 --- a/source/logger.h +++ b/source/logger.h @@ -3,6 +3,7 @@ #include #include +#include class Logger { @@ -12,8 +13,22 @@ private: public: void enable_channel(const std::string &); void disable_channel(const std::string &); + bool is_channel_enabled(const std::string &) const; void log(const std::string &, const std::string &) const; + + template + void log(const std::string &, const std::string &, Args &&...) const; + +private: + void print(const std::string &) const; }; +template +void Logger::log(const std::string &chan, const std::string &fmt, Args &&... args) const +{ + if(is_channel_enabled(chan)) + print(Msp::format(fmt, std::forward(args)...)); +} + #endif