28 inline std::string
format(
const char *fmt, ...) {
29# ifdef LOGIT_USE_FMT_LIB
32 std::string result = fmt::vformat(fmt, fmt::make_format_args(args));
38 std::vector<char> buffer(1024);
41 va_copy(args_copy, args);
42 int res = vsnprintf(buffer.data(), buffer.size(), fmt, args_copy);
45 if ((res >= 0) && (res <
static_cast<int>(buffer.size()))) {
47 return std::string(buffer.data());
51 const size_t size = res < 0 ? buffer.size() * 2 :
static_cast<size_t>(res) + 1;