added printf syntax support for even faster compilation!

This commit is contained in:
gabime
2019-03-24 00:30:08 +02:00
parent 4449bf6f83
commit 621e0a8330
4 changed files with 121 additions and 46 deletions

View File

@@ -97,20 +97,6 @@ enum class level
off = SPDLITE_LEVEL_OFF
};
struct src_loc
{
src_loc() = default;
src_loc(const char *filename, int line, const char *funcname)
: filename(filename)
, line(line)
, funcname(funcname)
{
}
const char *filename = nullptr;
int line = 0;
const char *funcname = nullptr;
};
class logger
{
@@ -127,7 +113,7 @@ public:
bool should_log(spdlog::lite::level lvl) const noexcept;
template<typename... Args>
void log(const spdlog::lite::src_loc &src, spdlog::lite::level lvl, const char *fmt, const Args &... args)
void log(spdlog::lite::level lvl, const char *fmt, const Args &... args)
{
if (!should_log(lvl))
{
@@ -135,19 +121,20 @@ public:
}
fmt::memory_buffer formatted_buf;
fmt::format_to(formatted_buf, fmt, args...);
log_formatted_(src, lvl, formatted_buf);
log_formatted_(lvl, formatted_buf);
}
template<typename... Args>
void log(spdlog::lite::level lvl, const char *fmt, const Args &... args)
{
log(spdlog::lite::src_loc{}, lvl, fmt, args...);
}
// log string view
void log(spdlog::lite::level lvl, const string_view_t &sv);
void log_printf(spdlog::lite::level lvl, const char* format, va_list args);
//
// trace
//
void trace(const char *msg)
{
log_string_view_(spdlog::lite::level::trace, msg);
log(spdlog::lite::level::trace, string_view_t(msg));
}
template<typename... Args>
@@ -156,10 +143,14 @@ public:
log(spdlog::lite::level::trace, fmt, args...);
}
void trace_f(const char *printf_format, ...);
//
// debug
//
void debug(const char *msg)
{
log_string_view_(spdlog::lite::level::debug, msg);
log(spdlog::lite::level::debug, string_view_t(msg));
}
template<typename... Args>
@@ -168,10 +159,14 @@ public:
log(spdlog::lite::level::debug, fmt, args...);
}
void debug_f(const char *printf_format, ...);
//
// info
//
void info(const char *msg)
{
log_string_view_(spdlog::lite::level::info, msg);
log(spdlog::lite::level::info, string_view_t(msg));
}
template<typename... Args>
@@ -180,10 +175,14 @@ public:
log(spdlog::lite::level::info, fmt, args...);
}
void info_f(const char *printf_format, ...);
//
// warn
//
void warn(const char *msg)
{
log_string_view_(spdlog::lite::level::warn, msg);
log(spdlog::lite::level::warn, string_view_t(msg));
}
template<typename... Args>
@@ -192,22 +191,31 @@ public:
log(spdlog::lite::level::warn, fmt, args...);
}
void warn_f(const char *printf_format, ...);
//
// error
//
void error(const char *msg)
{
log_string_view_(spdlog::lite::level::err, msg);
log(spdlog::lite::level::err, string_view_t(msg));
}
template<typename... Args>
void error(const char *fmt, const Args &... args)
{
log(spdlog::lite::level::err, fmt, args...);
}
void error_f(const char *printf_format, ...);
//
// critical
//
void critical(const char *msg)
{
log_string_view_(spdlog::lite::level::critical, msg);
log(spdlog::lite::level::critical, string_view_t(msg));
}
template<typename... Args>
@@ -216,9 +224,18 @@ public:
log(spdlog::lite::level::critical, fmt, args...);
}
void critical_f(const char *printf_format, ...);
//
// setters/getters
//
std::string name() const;
void set_level(lite::level level);
lite::level get_level() const;
//
// flush
//
void flush();
void flush_on(spdlog::lite::level log_level);
spdlog::lite::level flush_level() const;
@@ -226,9 +243,8 @@ public:
protected:
std::shared_ptr<spdlog::logger> impl_;
void log_formatted_(const spdlog::lite::src_loc &src, spdlog::lite::level lvl, const fmt::memory_buffer &formatted);
void log_string_view_(const spdlog::lite::src_loc &src, spdlog::lite::level lvl, const string_view_t &sv);
void log_string_view_(spdlog::lite::level lvl, const string_view_t &sv);
void log_formatted_(spdlog::lite::level lvl, const fmt::memory_buffer &formatted);
};
spdlog::lite::logger &default_logger();