1
0
mirror of https://github.com/vcmi/vcmi.git synced 2026-05-16 09:28:24 +02:00

Implemented boost::format based log proxy.

This commit is contained in:
AlexVinS
2016-08-12 11:17:15 +03:00
parent 36c44c2ce7
commit d6178d0bb5
3 changed files with 50 additions and 2 deletions
+48
View File
@@ -12,9 +12,57 @@
namespace vstd
{
namespace detail
{
template <typename T>
void makeFormat(boost::format & fmt, T t)
{
fmt % t;
}
template <typename T, typename ... Args>
void makeFormat(boost::format & fmt, T t, Args ... args)
{
fmt % t;
makeFormat(fmt, args...);
}
}
template<typename Logger, typename ... Args>
void logFormat(Logger * logger, ELogLevel::ELogLevel level, const std::string & format, Args ... args)
{
boost::format fmt(format);
detail::makeFormat(fmt, args...);
logger->log(level, fmt.str());
}
template<typename Logger, typename ... Args>
void logErrorFormat(Logger * logger, const std::string & format, Args ... args)
{
logFormat(logger, ELogLevel::ERROR, format, args...);
}
template<typename Logger, typename ... Args>
void logWarnFormat(Logger * logger, const std::string & format, Args ... args)
{
logFormat(logger, ELogLevel::WARN, format, args...);
}
template<typename Logger, typename ... Args>
void logInfoFormat(Logger * logger, const std::string & format, Args ... args)
{
logFormat(logger, ELogLevel::INFO, format, args...);
}
template<typename Logger, typename ... Args>
void logDebugFormat(Logger * logger, const std::string & format, Args ... args)
{
logFormat(logger, ELogLevel::DEBUG, format, args...);
}
template<typename Logger, typename ... Args>
void logTraceFormat(Logger * logger, const std::string & format, Args ... args)
{
logFormat(logger, ELogLevel::TRACE, format, args...);
}
}