X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flogger.h;h=3a10f0e89177e10c071b97cd389c79e4d46a1404;hb=c8c51fac9453a677fc3e6932c4730f35e237af89;hp=64c131544c4cef1995ec8c8b3786b7355f90ee36;hpb=fefa7d1e8ac40136b690e305ce9594af95c678b8;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