mirror of
https://github.com/gabime/spdlog.git
synced 2024-11-21 03:12:41 +08:00
Better support for string_view
This commit is contained in:
parent
2ad191aeba
commit
894438d5fb
@ -56,6 +56,13 @@ using sink_ptr = std::shared_ptr<sinks::sink>;
|
|||||||
using sinks_init_list = std::initializer_list<sink_ptr>;
|
using sinks_init_list = std::initializer_list<sink_ptr>;
|
||||||
using log_err_handler = std::function<void(const std::string &err_msg)>;
|
using log_err_handler = std::function<void(const std::string &err_msg)>;
|
||||||
|
|
||||||
|
// string_view type - either std::string_view or fmt::string_view (pre c++17)
|
||||||
|
#if defined(FMT_USE_STD_STRING_VIEW)
|
||||||
|
using string_view_type = std::string_view;
|
||||||
|
#else
|
||||||
|
using string_view_type = fmt::string_view;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(SPDLOG_NO_ATOMIC_LEVELS)
|
#if defined(SPDLOG_NO_ATOMIC_LEVELS)
|
||||||
using level_t = details::null_atomic_int;
|
using level_t = details::null_atomic_int;
|
||||||
#else
|
#else
|
||||||
|
@ -14,9 +14,9 @@ namespace details {
|
|||||||
namespace fmt_helper {
|
namespace fmt_helper {
|
||||||
|
|
||||||
template<size_t Buffer_Size>
|
template<size_t Buffer_Size>
|
||||||
inline fmt::string_view to_string_view(const fmt::basic_memory_buffer<char, Buffer_Size> &buf) SPDLOG_NOEXCEPT
|
inline spdlog::string_view_type to_string_view(const fmt::basic_memory_buffer<char, Buffer_Size> &buf) SPDLOG_NOEXCEPT
|
||||||
{
|
{
|
||||||
return fmt::string_view(buf.data(), buf.size());
|
return spdlog::string_view_type(buf.data(), buf.size());
|
||||||
}
|
}
|
||||||
template<size_t Buffer_Size1, size_t Buffer_Size2>
|
template<size_t Buffer_Size1, size_t Buffer_Size2>
|
||||||
inline void append_buf(const fmt::basic_memory_buffer<char, Buffer_Size1> &buf, fmt::basic_memory_buffer<char, Buffer_Size2> &dest)
|
inline void append_buf(const fmt::basic_memory_buffer<char, Buffer_Size1> &buf, fmt::basic_memory_buffer<char, Buffer_Size2> &dest)
|
||||||
@ -26,7 +26,7 @@ inline void append_buf(const fmt::basic_memory_buffer<char, Buffer_Size1> &buf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<size_t Buffer_Size>
|
template<size_t Buffer_Size>
|
||||||
inline void append_string_view(fmt::string_view view, fmt::basic_memory_buffer<char, Buffer_Size> &dest)
|
inline void append_string_view(spdlog::string_view_type view, fmt::basic_memory_buffer<char, Buffer_Size> &dest)
|
||||||
{
|
{
|
||||||
auto *buf_ptr = view.data();
|
auto *buf_ptr = view.data();
|
||||||
if (buf_ptr != nullptr)
|
if (buf_ptr != nullptr)
|
||||||
|
@ -17,7 +17,7 @@ struct log_msg
|
|||||||
{
|
{
|
||||||
log_msg() = default;
|
log_msg() = default;
|
||||||
|
|
||||||
log_msg(const std::string *loggers_name, level::level_enum lvl, fmt::string_view view)
|
log_msg(const std::string *loggers_name, level::level_enum lvl, string_view_type view)
|
||||||
: logger_name(loggers_name)
|
: logger_name(loggers_name)
|
||||||
, level(lvl)
|
, level(lvl)
|
||||||
#ifndef SPDLOG_NO_DATETIME
|
#ifndef SPDLOG_NO_DATETIME
|
||||||
@ -44,7 +44,7 @@ struct log_msg
|
|||||||
mutable size_t color_range_start{0};
|
mutable size_t color_range_start{0};
|
||||||
mutable size_t color_range_end{0};
|
mutable size_t color_range_end{0};
|
||||||
|
|
||||||
const fmt::string_view payload;
|
const string_view_type payload;
|
||||||
};
|
};
|
||||||
} // namespace details
|
} // namespace details
|
||||||
} // namespace spdlog
|
} // namespace spdlog
|
||||||
|
@ -39,7 +39,7 @@ class name_formatter : public flag_formatter
|
|||||||
void format(const details::log_msg &msg, const std::tm &, fmt::memory_buffer &dest) override
|
void format(const details::log_msg &msg, const std::tm &, fmt::memory_buffer &dest) override
|
||||||
{
|
{
|
||||||
// fmt_helper::append_str(*msg.logger_name, dest);
|
// fmt_helper::append_str(*msg.logger_name, dest);
|
||||||
fmt_helper::append_string_view(*msg.logger_name, dest);
|
fmt_helper::append_string_view(string_view_type(*msg.logger_name), dest);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -49,6 +49,7 @@ class level_formatter : public flag_formatter
|
|||||||
void format(const details::log_msg &msg, const std::tm &, fmt::memory_buffer &dest) override
|
void format(const details::log_msg &msg, const std::tm &, fmt::memory_buffer &dest) override
|
||||||
{
|
{
|
||||||
// fmt_helper::append_string_view(level::to_c_str(msg.level), dest);
|
// fmt_helper::append_string_view(level::to_c_str(msg.level), dest);
|
||||||
|
spdlog::string_view_type t("SSSSSSS");
|
||||||
fmt_helper::append_string_view(level::to_c_str(msg.level), dest);
|
fmt_helper::append_string_view(level::to_c_str(msg.level), dest);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -94,7 +94,7 @@ struct async_msg
|
|||||||
// copy into log_msg
|
// copy into log_msg
|
||||||
log_msg to_log_msg()
|
log_msg to_log_msg()
|
||||||
{
|
{
|
||||||
log_msg msg(&worker_ptr->name(), level, fmt::string_view(raw.data(), raw.size()));
|
log_msg msg(&worker_ptr->name(), level, string_view_type(raw.data(), raw.size()));
|
||||||
msg.time = time;
|
msg.time = time;
|
||||||
msg.thread_id = thread_id;
|
msg.thread_id = thread_id;
|
||||||
msg.msg_id = msg_id;
|
msg.msg_id = msg_id;
|
||||||
|
Loading…
Reference in New Issue
Block a user