mirror of
https://github.com/gabime/spdlog.git
synced 2024-11-15 16:35:45 +08:00
parent
1c4da3eef3
commit
3af247fbd3
@ -70,16 +70,17 @@ int main(int, char*[])
|
|||||||
// Just call spdlog::set_async_mode(q_size) and all created loggers from now on will be asynchronous..
|
// Just call spdlog::set_async_mode(q_size) and all created loggers from now on will be asynchronous..
|
||||||
async_example();
|
async_example();
|
||||||
|
|
||||||
// syslog example. linux/osx only..
|
// syslog example. linux/osx only
|
||||||
syslog_example();
|
syslog_example();
|
||||||
|
|
||||||
// log user-defined types example..
|
// Log user-defined types example
|
||||||
user_defined_example();
|
user_defined_example();
|
||||||
|
|
||||||
// Change default log error handler
|
// Change default log error handler
|
||||||
err_handler_example();
|
err_handler_example();
|
||||||
|
|
||||||
console->info("End of example. bye..");
|
// Apply a function on all registered loggers
|
||||||
|
spd::apply_all([&](std::shared_ptr<spdlog::logger> l) {l->info("End of example."); });
|
||||||
|
|
||||||
// Release and close all loggers
|
// Release and close all loggers
|
||||||
spdlog::drop_all();
|
spdlog::drop_all();
|
||||||
|
@ -71,6 +71,13 @@ public:
|
|||||||
return new_logger;
|
return new_logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void apply_all(std::function<void(std::shared_ptr<logger>)> fun)
|
||||||
|
{
|
||||||
|
std::lock_guard<Mutex> lock(_mutex);
|
||||||
|
for (auto &l : _loggers)
|
||||||
|
fun(l.second);
|
||||||
|
}
|
||||||
|
|
||||||
void drop(const std::string& logger_name)
|
void drop(const std::string& logger_name)
|
||||||
{
|
{
|
||||||
std::lock_guard<Mutex> lock(_mutex);
|
std::lock_guard<Mutex> lock(_mutex);
|
||||||
|
@ -153,8 +153,6 @@ inline void spdlog::set_error_handler(log_err_handler handler)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
inline void spdlog::set_async_mode(size_t queue_size, const async_overflow_policy overflow_policy, const std::function<void()>& worker_warmup_cb, const std::chrono::milliseconds& flush_interval_ms, const std::function<void()>& worker_teardown_cb)
|
inline void spdlog::set_async_mode(size_t queue_size, const async_overflow_policy overflow_policy, const std::function<void()>& worker_warmup_cb, const std::chrono::milliseconds& flush_interval_ms, const std::function<void()>& worker_teardown_cb)
|
||||||
{
|
{
|
||||||
details::registry::instance().set_async_mode(queue_size, overflow_policy, worker_warmup_cb, flush_interval_ms, worker_teardown_cb);
|
details::registry::instance().set_async_mode(queue_size, overflow_policy, worker_warmup_cb, flush_interval_ms, worker_teardown_cb);
|
||||||
@ -165,6 +163,11 @@ inline void spdlog::set_sync_mode()
|
|||||||
details::registry::instance().set_sync_mode();
|
details::registry::instance().set_sync_mode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline void spdlog::apply_all(std::function<void(std::shared_ptr<logger>)> fun)
|
||||||
|
{
|
||||||
|
details::registry::instance().apply_all(fun);
|
||||||
|
}
|
||||||
|
|
||||||
inline void spdlog::drop_all()
|
inline void spdlog::drop_all()
|
||||||
{
|
{
|
||||||
details::registry::instance().drop_all();
|
details::registry::instance().drop_all();
|
||||||
|
@ -113,7 +113,8 @@ std::shared_ptr<logger> create(const std::string& logger_name, const It& sinks_b
|
|||||||
|
|
||||||
|
|
||||||
// Create and register a logger with templated sink type
|
// Create and register a logger with templated sink type
|
||||||
// Example: spdlog::create<daily_file_sink_st>("mylog", "dailylog_filename", "txt");
|
// Example:
|
||||||
|
// spdlog::create<daily_file_sink_st>("mylog", "dailylog_filename", "txt");
|
||||||
template <typename Sink, typename... Args>
|
template <typename Sink, typename... Args>
|
||||||
std::shared_ptr<spdlog::logger> create(const std::string& logger_name, Args...);
|
std::shared_ptr<spdlog::logger> create(const std::string& logger_name, Args...);
|
||||||
|
|
||||||
@ -121,10 +122,15 @@ std::shared_ptr<spdlog::logger> create(const std::string& logger_name, Args...);
|
|||||||
// Register the given logger with the given name
|
// Register the given logger with the given name
|
||||||
void register_logger(std::shared_ptr<logger> logger);
|
void register_logger(std::shared_ptr<logger> logger);
|
||||||
|
|
||||||
|
// Apply a user defined function on all registered loggers
|
||||||
|
// Example:
|
||||||
|
// spdlog::apply_all([&](std::shared_ptr<spdlog::logger> l) {l->flush();});
|
||||||
|
void apply_all(std::function<void(std::shared_ptr<logger>)> fun);
|
||||||
|
|
||||||
// Drop the reference to the given logger
|
// Drop the reference to the given logger
|
||||||
void drop(const std::string &name);
|
void drop(const std::string &name);
|
||||||
|
|
||||||
// Drop all references
|
// Drop all references from the registry
|
||||||
void drop_all();
|
void drop_all();
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user