mirror of
https://github.com/gabime/spdlog.git
synced 2024-12-24 17:41:34 +08:00
Removed close() from sink to have RAII semantics
This commit is contained in:
parent
03d9abe8e2
commit
58688d7d1c
@ -112,7 +112,6 @@ void bench(int howmany, std::shared_ptr<spdlog::logger> log)
|
|||||||
auto delta = system_clock::now() - start;
|
auto delta = system_clock::now() - start;
|
||||||
auto delta_d = duration_cast<duration<double>> (delta).count();
|
auto delta_d = duration_cast<duration<double>> (delta).count();
|
||||||
cout << format(int(howmany / delta_d)) << "/sec" << endl;
|
cout << format(int(howmany / delta_d)) << "/sec" << endl;
|
||||||
log->close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -146,6 +145,5 @@ void bench_mt(int howmany, std::shared_ptr<spdlog::logger> log, int thread_count
|
|||||||
auto delta = system_clock::now() - start;
|
auto delta = system_clock::now() - start;
|
||||||
auto delta_d = duration_cast<duration<double>> (delta).count();
|
auto delta_d = duration_cast<duration<double>> (delta).count();
|
||||||
cout << format(int(howmany / delta_d)) << "/sec" << endl;
|
cout << format(int(howmany / delta_d)) << "/sec" << endl;
|
||||||
log->close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
#include "spdlog/spdlog.h"
|
#include "spdlog/spdlog.h"
|
||||||
|
|
||||||
|
|
||||||
int main(int, char* [])
|
int maina(int, char* [])
|
||||||
{
|
{
|
||||||
|
|
||||||
namespace spd = spdlog;
|
namespace spd = spdlog;
|
||||||
|
@ -137,11 +137,9 @@ inline bool spdlog::logger::should_log(spdlog::level::level_enum msg_level) cons
|
|||||||
return msg_level >= _level.load();
|
return msg_level >= _level.load();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void spdlog::logger::close()
|
inline void spdlog::logger::stop()
|
||||||
{
|
{
|
||||||
set_level(level::OFF);
|
set_level(level::OFF);
|
||||||
for (auto &sink : _sinks)
|
|
||||||
sink->close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -104,12 +104,12 @@ public:
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void close_all()
|
void stop_all()
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(_mutex);
|
std::lock_guard<std::mutex> lock(_mutex);
|
||||||
_level = level::OFF;
|
_level = level::OFF;
|
||||||
for (auto& l : _loggers)
|
for (auto& l : _loggers)
|
||||||
l.second->close();
|
l.second->stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ inline void spdlog::set_level(level::level_enum log_level)
|
|||||||
return details::registry::instance().set_level(log_level);
|
return details::registry::instance().set_level(log_level);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void spdlog::close()
|
inline void spdlog::stop()
|
||||||
{
|
{
|
||||||
return details::registry::instance().close_all();
|
return details::registry::instance().stop_all();
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,8 @@ public:
|
|||||||
const std::string& name() const;
|
const std::string& name() const;
|
||||||
bool should_log(level::level_enum) const;
|
bool should_log(level::level_enum) const;
|
||||||
|
|
||||||
void close();
|
//Stop logging
|
||||||
|
void stop();
|
||||||
|
|
||||||
template <typename... Args> details::line_logger log(level::level_enum lvl, const Args&... args);
|
template <typename... Args> details::line_logger log(level::level_enum lvl, const Args&... args);
|
||||||
template <typename... Args> details::line_logger log(const Args&... args);
|
template <typename... Args> details::line_logger log(const Args&... args);
|
||||||
|
@ -57,8 +57,6 @@ public:
|
|||||||
//Wait to remaining items (if any) in the queue to be written and shutdown
|
//Wait to remaining items (if any) in the queue to be written and shutdown
|
||||||
void shutdown(const std::chrono::milliseconds& timeout);
|
void shutdown(const std::chrono::milliseconds& timeout);
|
||||||
|
|
||||||
void close() override;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -150,10 +148,6 @@ inline void spdlog::sinks::async_sink::shutdown(const std::chrono::milliseconds&
|
|||||||
_shutdown();
|
_shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void spdlog::sinks::async_sink::close()
|
|
||||||
{
|
|
||||||
_shutdown();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
inline void spdlog::sinks::async_sink::_shutdown()
|
inline void spdlog::sinks::async_sink::_shutdown()
|
||||||
@ -166,7 +160,5 @@ inline void spdlog::sinks::async_sink::_shutdown()
|
|||||||
_back_thread.join();
|
_back_thread.join();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto &s : _sinks)
|
|
||||||
s->close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,10 +50,7 @@ public:
|
|||||||
{
|
{
|
||||||
_file_helper.open(filename);
|
_file_helper.open(filename);
|
||||||
}
|
}
|
||||||
void close() override
|
|
||||||
{
|
|
||||||
_file_helper.close();
|
|
||||||
}
|
|
||||||
protected:
|
protected:
|
||||||
void _sink_it(const details::log_msg& msg) override
|
void _sink_it(const details::log_msg& msg) override
|
||||||
{
|
{
|
||||||
@ -86,10 +83,6 @@ public:
|
|||||||
_file_helper.open(calc_filename(_base_filename, 0, _extension));
|
_file_helper.open(calc_filename(_base_filename, 0, _extension));
|
||||||
}
|
}
|
||||||
|
|
||||||
void close() override
|
|
||||||
{
|
|
||||||
_file_helper.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void _sink_it(const details::log_msg& msg) override
|
void _sink_it(const details::log_msg& msg) override
|
||||||
@ -171,10 +164,6 @@ public:
|
|||||||
_file_helper.open(calc_filename(_base_filename, _extension));
|
_file_helper.open(calc_filename(_base_filename, _extension));
|
||||||
}
|
}
|
||||||
|
|
||||||
void close() override
|
|
||||||
{
|
|
||||||
_file_helper.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void _sink_it(const details::log_msg& msg) override
|
void _sink_it(const details::log_msg& msg) override
|
||||||
|
@ -34,16 +34,13 @@ namespace sinks
|
|||||||
{
|
{
|
||||||
|
|
||||||
template <class Mutex>
|
template <class Mutex>
|
||||||
class null_sink : public base_sink<Mutex>
|
class null_sink : public base_sink < Mutex >
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
void _sink_it(const details::log_msg&) override
|
void _sink_it(const details::log_msg&) override
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void close() 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;
|
||||||
|
|
||||||
|
@ -44,10 +44,6 @@ public:
|
|||||||
ostream_sink& operator=(const ostream_sink&) = delete;
|
ostream_sink& operator=(const ostream_sink&) = delete;
|
||||||
virtual ~ostream_sink() = default;
|
virtual ~ostream_sink() = default;
|
||||||
|
|
||||||
|
|
||||||
void close() override
|
|
||||||
{}
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void _sink_it(const details::log_msg& msg) override
|
virtual void _sink_it(const details::log_msg& msg) override
|
||||||
{
|
{
|
||||||
|
@ -35,7 +35,6 @@ class sink
|
|||||||
public:
|
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 close() = 0;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,8 +88,8 @@ std::shared_ptr<spdlog::logger> create(const std::string& logger_name, const Arg
|
|||||||
// Set global formatter object
|
// Set global formatter object
|
||||||
void set_formatter(formatter_ptr f);
|
void set_formatter(formatter_ptr f);
|
||||||
|
|
||||||
// Close all loggers and stop logging
|
// Stop logging by setting all the loggers to log level OFF
|
||||||
void close();
|
void stop();
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
Loading…
Reference in New Issue
Block a user