spdlog::flush_every(std::chrono::seconds(5));// 定期为所有注册的logger隔5秒刷新 基于级别刷新 auto logger = spdlog::stdout_color_mt('my_log');logger->flush_on(spdlog::level::warn);//遇到 warn 就立即刷新 手动刷新 auto logger = spdlog::stdout_color_mt('my_log');logger->flush()//...
logger提供了一些控制日志刷新的方法,最重要的方法是flush()。当调用flush()方法时,Logger会将所有挂起的日志消息刷新到Sink中。Logger还提供了set_pattern()方法,用于设置日志格式化模式。这个方法可以用于修改日志的输出格式,例如添加时间戳、线程ID等信息。 AI检测代码解析 void flush(); 1. 日志格式设置 logger提供...
AI代码解释 template<classMutex>classbase_sink:publicsink{voidlog(constdetails::log_msg&msg)SPDLOG_FINALoverride{std::lock_guard<Mutex>lock(_mutex);_sink_it(msg);}voidflush()SPDLOG_FINALoverride{std::lock_guard<Mutex>lock(_mutex);_flush();} 代码语言:javascript 代码运行次数:0 运行 AI代码解释...
classsink{public:virtual~sink()=default;virtualvoidlog(constdetails::log_msg&msg)=0;virtualvoidflush()=0;virtualvoidset_pattern(conststd::string&pattern)=0;virtualvoidset_formatter(std::unique_ptr<spdlog::formatter>sink_formatter)=0;voidset_level(level::level_enumlog_level);level::level_enuml...
void backend_flush_(); private: std::weak_ptr thread_pool_; async_overflow_policy overflow_policy_; }; 私有函数sink_it_负责调用thread_pool::post_log,将log消息写到线程池缓存(环形队列)。 私有函数flush_负责调用thread_pool::post_flush,将冲刷缓存(环形队列+标准库缓存)中的log消息到目标文件。 /...
spdlog::flush_every(std::chrono::seconds(3)); // Apply some function on all registered loggers //对所有注册的记录器应用某些功能 spdlog::apply_all([&](std::shared_ptr<spdlog::logger> l) { l->info("End of example."); }); // Release all spdlog resources, and drop all loggers in...
log->flush_on(spdlog::level::err); //3秒刷新一次队列 spdlog::flush_every(std::chrono::seconds(3)); spdlog::set_default_logger(log); } //单个日志记录器 std::shared_ptr<spdlog::logger> get_async_file_logger(std::string name)
spdlog::flush_every(std::chrono::seconds(1)); spdlog::flush_on(spdlog::level::debug); logger# 日志对象,每个logger内包含了一个vector用于存放sink,每个sink都是相互独立 因此一个日志对象在输出日志时可以同时输出到控制台和文件等位置 使用默认logger# 如果整个项目中只需要一个logger,spdlog提供了最为...
void flush_() override { std::cout << std::flush; } }; #include "spdlog/details/null_mutex.h" #include <mutex> using my_sink_mt = my_sink<std::mutex>; using my_sink_st = my_sink<spdlog::details::null_mutex>; 在创建logger后添加sink ...
Flush策略 #指定sink把日志刷到目的地的方式 Logger->log(…) #输入日志到sink Set_level #设置日志级别,只有大于等于设置的level才能输出出去 Async logger: Logger->log(…) #在异步日志中仅仅是发布一个消息到线程池 Sink: Set_level #自定义日志级别 ...