New log function to enable wrappers with local filters

pull/283/head
Mats Webjörn 9 years ago
parent 5653e5c9d7
commit 19aff4691b

@ -59,10 +59,8 @@ inline void spdlog::logger::set_pattern(const std::string& pattern)
template <typename... Args> template <typename... Args>
inline void spdlog::logger::log(level::level_enum lvl, const char* fmt, const Args&... args) inline void spdlog::logger::log_nofilter(level::level_enum lvl, const char* fmt, const Args&... args)
{ {
if (!should_log(lvl)) return;
try try
{ {
details::log_msg log_msg(&_name, lvl); details::log_msg log_msg(&_name, lvl);
@ -80,9 +78,8 @@ inline void spdlog::logger::log(level::level_enum lvl, const char* fmt, const Ar
} }
template <typename... Args> template <typename... Args>
inline void spdlog::logger::log(level::level_enum lvl, const char* msg) inline void spdlog::logger::log_nofilter(level::level_enum lvl, const char* msg)
{ {
if (!should_log(lvl)) return;
try try
{ {
details::log_msg log_msg(&_name, lvl); details::log_msg log_msg(&_name, lvl);
@ -97,13 +94,11 @@ inline void spdlog::logger::log(level::level_enum lvl, const char* msg)
{ {
_err_handler("Unknown exception"); _err_handler("Unknown exception");
} }
} }
template<typename T> template<typename T>
inline void spdlog::logger::log(level::level_enum lvl, const T& msg) inline void spdlog::logger::log_nofilter(level::level_enum lvl, const T& msg)
{ {
if (!should_log(lvl)) return;
try try
{ {
details::log_msg log_msg(&_name, lvl); details::log_msg log_msg(&_name, lvl);
@ -120,6 +115,23 @@ inline void spdlog::logger::log(level::level_enum lvl, const T& msg)
} }
} }
template <typename... Args>
inline void spdlog::logger::log(level::level_enum lvl, const char* fmt, const Args&... args)
{
if (should_log(lvl)) log_nofilter(lvl, fmt, args...);
}
template <typename... Args>
inline void spdlog::logger::log(level::level_enum lvl, const char* msg)
{
if (should_log(lvl)) log_nofilter(lvl, msg);
}
template<typename T>
inline void spdlog::logger::log(level::level_enum lvl, const T& msg)
{
if (should_log(lvl)) log_nofilter(lvl, msg);
}
template <typename... Args> template <typename... Args>
inline void spdlog::logger::trace(const char* fmt, const Args&... args) inline void spdlog::logger::trace(const char* fmt, const Args&... args)

@ -37,6 +37,8 @@ public:
template <typename... Args> void log(level::level_enum lvl, const char* fmt, const Args&... args); template <typename... Args> void log(level::level_enum lvl, const char* fmt, const Args&... args);
template <typename... Args> void log(level::level_enum lvl, const char* msg); template <typename... Args> void log(level::level_enum lvl, const char* msg);
template <typename... Args> void log_nofilter(level::level_enum lvl, const char* fmt, const Args&... args);
template <typename... Args> void log_nofilter(level::level_enum lvl, const char* msg);
template <typename... Args> void trace(const char* fmt, const Args&... args); template <typename... Args> void trace(const char* fmt, const Args&... args);
template <typename... Args> void debug(const char* fmt, const Args&... args); template <typename... Args> void debug(const char* fmt, const Args&... args);
template <typename... Args> void info(const char* fmt, const Args&... args); template <typename... Args> void info(const char* fmt, const Args&... args);
@ -45,6 +47,7 @@ public:
template <typename... Args> void critical(const char* fmt, const Args&... args); template <typename... Args> void critical(const char* fmt, const Args&... args);
template <typename T> void log(level::level_enum lvl, const T&); template <typename T> void log(level::level_enum lvl, const T&);
template <typename T> void log_nofilter(level::level_enum lvl, const T&);
template <typename T> void trace(const T&); template <typename T> void trace(const T&);
template <typename T> void debug(const T&); template <typename T> void debug(const T&);
template <typename T> void info(const T&); template <typename T> void info(const T&);

Loading…
Cancel
Save