@@ -70,18 +70,19 @@ 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();
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
							// Apply a function on all registered loggers
 | 
				
			||||||
 | 
							spd::apply_all([&](std::shared_ptr<spdlog::logger> l) {l->info("End of example."); });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        console->info("End of example. bye..");
 | 
					        // Release and close all loggers		
 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Release and close all loggers
 | 
					 | 
				
			||||||
        spdlog::drop_all();
 | 
					        spdlog::drop_all();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    // Exceptions will only be thrown upon failed logger or sink construction (not during logging)
 | 
					    // Exceptions will only be thrown upon failed logger or sink construction (not during logging)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user