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 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)
|
||||
using level_t = details::null_atomic_int;
|
||||
#else
|
||||
|
@ -14,9 +14,9 @@ namespace details {
|
||||
namespace fmt_helper {
|
||||
|
||||
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>
|
||||
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>
|
||||
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();
|
||||
if (buf_ptr != nullptr)
|
||||
|
@ -17,7 +17,7 @@ struct log_msg
|
||||
{
|
||||
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)
|
||||
, level(lvl)
|
||||
#ifndef SPDLOG_NO_DATETIME
|
||||
@ -44,7 +44,7 @@ struct log_msg
|
||||
mutable size_t color_range_start{0};
|
||||
mutable size_t color_range_end{0};
|
||||
|
||||
const fmt::string_view payload;
|
||||
const string_view_type payload;
|
||||
};
|
||||
} // namespace details
|
||||
} // 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
|
||||
{
|
||||
// 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
|
||||
{
|
||||
// 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);
|
||||
}
|
||||
};
|
||||
|
@ -94,7 +94,7 @@ struct async_msg
|
||||
// copy into 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.thread_id = thread_id;
|
||||
msg.msg_id = msg_id;
|
||||
|
Loading…
Reference in New Issue
Block a user