Add support for clearing file_sink current contents

pull/172/head
isaac 10 years ago
parent e91e1b80f9
commit e567de3bd6

@ -296,4 +296,10 @@ inline void spdlog::logger::flush()
{ {
for (auto& sink : _sinks) for (auto& sink : _sinks)
sink->flush(); sink->flush();
}
inline void spdlog::logger::clear()
{
for (auto& sink : _sinks)
sink->clear();
} }

@ -89,6 +89,7 @@ public:
void set_formatter(formatter_ptr); void set_formatter(formatter_ptr);
virtual void flush(); virtual void flush();
virtual void clear();
protected: protected:
virtual void _log_msg(details::log_msg&); virtual void _log_msg(details::log_msg&);

@ -32,6 +32,10 @@ public:
{ {
} }
void clear() override
{
}
protected: protected:
void _sink_it(const details::log_msg& msg) override void _sink_it(const details::log_msg& msg) override
{ {

@ -33,6 +33,11 @@ public:
_file_helper.flush(); _file_helper.flush();
} }
void clear() override
{
_file_helper.reopen(true);
}
protected: protected:
void _sink_it(const details::log_msg& msg) override void _sink_it(const details::log_msg& msg) override
{ {
@ -71,6 +76,11 @@ public:
_file_helper.flush(); _file_helper.flush();
} }
void clear() override
{
_file_helper.reopen(true);
}
protected: protected:
void _sink_it(const details::log_msg& msg) override void _sink_it(const details::log_msg& msg) override
{ {
@ -163,6 +173,11 @@ public:
_file_helper.flush(); _file_helper.flush();
} }
void clear() override
{
_file_helper.reopen(true);
}
protected: protected:
void _sink_it(const details::log_msg& msg) override void _sink_it(const details::log_msg& msg) override
{ {

@ -24,6 +24,8 @@ protected:
void flush() override void flush() override
{} {}
void clear() override
{}
}; };
typedef null_sink<details::null_mutex> null_sink_st; typedef null_sink<details::null_mutex> null_sink_st;
typedef null_sink<std::mutex> null_sink_mt; typedef null_sink<std::mutex> null_sink_mt;

@ -38,6 +38,10 @@ protected:
_ostream.flush(); _ostream.flush();
} }
void clear() override
{
}
std::ostream& _ostream; std::ostream& _ostream;
bool _force_flush; bool _force_flush;
}; };

@ -18,6 +18,7 @@ public:
virtual ~sink() {} virtual ~sink() {}
virtual void log(const details::log_msg& msg) = 0; virtual void log(const details::log_msg& msg) = 0;
virtual void flush() = 0; virtual void flush() = 0;
virtual void clear() = 0;
}; };
} }
} }

@ -63,6 +63,10 @@ public:
{ {
} }
void clear() override
{
}
private: private:
std::array<int, 10> _priorities; std::array<int, 10> _priorities;

Loading…
Cancel
Save