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:
@@ -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...);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user