mirror of
https://github.com/gabime/spdlog.git
synced 2024-12-26 10:31:34 +08:00
backtrace_sink code cleanup
This commit is contained in:
parent
36f253893e
commit
099137fe9a
@ -25,8 +25,7 @@ SPDLOG_INLINE logger::logger(const logger &other)
|
|||||||
, backtrace_sink_(other.backtrace_sink_)
|
, backtrace_sink_(other.backtrace_sink_)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
SPDLOG_INLINE logger::logger(logger &&other) SPDLOG_NOEXCEPT :
|
SPDLOG_INLINE logger::logger(logger &&other) SPDLOG_NOEXCEPT : name_(std::move(other.name_)),
|
||||||
name_(std::move(other.name_)),
|
|
||||||
sinks_(std::move(other.sinks_)),
|
sinks_(std::move(other.sinks_)),
|
||||||
level_(other.level_.load(std::memory_order_relaxed)),
|
level_(other.level_.load(std::memory_order_relaxed)),
|
||||||
flush_level_(other.flush_level_.load(std::memory_order_relaxed)),
|
flush_level_(other.flush_level_.load(std::memory_order_relaxed)),
|
||||||
@ -139,8 +138,7 @@ SPDLOG_INLINE void logger::enable_backtrace(size_t n_messages)
|
|||||||
{
|
{
|
||||||
if (!backtrace_sink_)
|
if (!backtrace_sink_)
|
||||||
{
|
{
|
||||||
auto new_backtrace_sink = new spdlog::sinks::backtrace_sink_mt(level(), n_messages);
|
auto new_backtrace_sink = new spdlog::sinks::backtrace_sink_mt(std::move(sinks_), level(), n_messages);
|
||||||
new_backtrace_sink->set_sinks(std::move(sinks_));
|
|
||||||
backtrace_sink_.reset(new_backtrace_sink);
|
backtrace_sink_.reset(new_backtrace_sink);
|
||||||
sinks().push_back(backtrace_sink_);
|
sinks().push_back(backtrace_sink_);
|
||||||
assert(sinks().size() == 1);
|
assert(sinks().size() == 1);
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
#include "dist_sink.h"
|
#include "dist_sink.h"
|
||||||
#include "spdlog/common.h"
|
#include "spdlog/common.h"
|
||||||
#include "spdlog/details/null_mutex.h"
|
|
||||||
#include "spdlog/details/log_msg_buffer.h"
|
#include "spdlog/details/log_msg_buffer.h"
|
||||||
#include "spdlog/details/circular_q.h"
|
#include "spdlog/details/circular_q.h"
|
||||||
|
|
||||||
@ -13,9 +12,9 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
|
|
||||||
// Store log messages in circular buffer
|
// Store log messages in circular buffer.
|
||||||
// If it encounters a message with high enough level, it will send all previous message to it child sinks
|
// If it encounters a message with high enough level, it will send all previous message to it child sinks.
|
||||||
// Useful for storing debug data in case of error/warning happens
|
// Useful for storing debug data in case of error/warning happens.
|
||||||
|
|
||||||
namespace spdlog {
|
namespace spdlog {
|
||||||
namespace sinks {
|
namespace sinks {
|
||||||
@ -23,10 +22,12 @@ template<typename Mutex>
|
|||||||
class backtrace_sink : public dist_sink<Mutex>
|
class backtrace_sink : public dist_sink<Mutex>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit backtrace_sink(spdlog::level::level_enum filter_level, size_t n_messages)
|
backtrace_sink(std::vector<std::shared_ptr<sink>> &&child_sinks, spdlog::level::level_enum filter_level, size_t n_messages)
|
||||||
: filter_level_{filter_level}
|
: filter_level_{filter_level}
|
||||||
, traceback_msgs_{n_messages}
|
, traceback_msgs_{n_messages}
|
||||||
{}
|
{
|
||||||
|
dist_sink<Mutex>::set_sinks(std::move(child_sinks));
|
||||||
|
}
|
||||||
|
|
||||||
void set_filter_level(spdlog::level::level_enum filter_level)
|
void set_filter_level(spdlog::level::level_enum filter_level)
|
||||||
{
|
{
|
||||||
@ -83,7 +84,6 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
using backtrace_sink_mt = backtrace_sink<std::mutex>;
|
using backtrace_sink_mt = backtrace_sink<std::mutex>;
|
||||||
using backtrace_sink_st = backtrace_sink<details::null_mutex>;
|
|
||||||
|
|
||||||
} // namespace sinks
|
} // namespace sinks
|
||||||
} // namespace spdlog
|
} // namespace spdlog
|
||||||
|
@ -50,7 +50,6 @@ public:
|
|||||||
return sinks_;
|
return sinks_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void sink_it_(const details::log_msg &msg) override
|
void sink_it_(const details::log_msg &msg) override
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user