目前spdlog 已经提供了多种 Sink 的实现,包括: stdout_sink(输出到控制台) basic_file_sink(输出到文件) daily_file_sink(每天输出到不同的日志文件) rotating_file_sink(按文件大小或时间自动切分日志文件) null_sink(无输出) syslog_sink(输出到系统日志) udp_sink(输出到udp) tcp_sink(输出到tcp) kafka_s...
base_sink &operator=(base_sink &&) = delete;voidlog(constdetails::log_msg &msg)final;// 接收用户log消息voidflush()final;// 冲刷用户log消息(到目标文件)voidset_pattern(conststd::string&pattern)final;// 用模式串设置模式, 使用默认的formatter=pattern_formattervoidset_formatter(std::unique_ptr<...
sinks.push_back(std::make_shared<spdlog::sinks::daily_file_sink_st>("log_file", 23, 59)); auto logger = std::make_shared<spdlog::logger>("mylogger", begin(sinks), end(sinks)); spdlog::register_logger(logger); 多个文件logger共享同一个文件 复制代码 auto sharedFileSink = std::make_...
logger中主要包括: set_pattern(const std::string&):设置logger包含的所有sink的日志输出内容格式。 set_level(level_enum):设置logger日志输出最低等级,如果logger包含的sink没有设置日志等级的话,则会为其设置日志等级。 log(level_enum level,log_msg content):按照level等级进行输出content,logger其中日志输出最低...
#include 'spdlog/sinks/daily_file_sink.h'int main() { auto logger = spdlog::daily_logger_mt('daily_logger', 'my_log.log', 0, 0); return 0;} 创建异步日志 可以与 spdlog::async_factory 搭配使用,以实现异步日志。异步记录可以提高程序的性能,因为日志写入操作不会阻塞主线程。 #include '...
stdout_sink->set_level(spdlog::level::debug); //日志文件输出,0点0分创建新日志 auto file_sink = std::make_shared<spdlog::sinks::daily_file_sink_mt>("logs/log.txt", 0, 0); file_sink->set_level(spdlog::level::info); //日志回调 ...
auto my_logger = std::make_shared<spdlog::logger>("mylogger", sink); 1. 2. 使用多个sinks创建logger std::vector<spdlog::sink_ptr>sinks; sinks.push_back(std::make_shared<spdlog::sinks::stdout_sink_st>()); sinks.push_back(std::make_shared<spdlog::sinks::daily_file_sink_st>("log_...
具体路径为:/usr/local/include/spdlog/sinks/daily_file_sink.h 其中我使用的可以定点日切的源码为: template<typename Factory = spdlog::synchronous_factory>inline std::shared_ptr<logger> daily_logger_format_mt(const std::string &logger_name, const filename_t &filename, int hour = 0,int minute...
// 创建 daily file sink(每天生成一个新的日志文件) autodailyFileSink=std::make_shared<spdlog::sinks::daily_file_sink_mt>("daily_logfile.txt",0,0); // 创建 multi sink,并添加上面创建的所有 sink spdlog::sinks_init_list sinks{consoleSink,fileSink,dailyFileSink}; ...
可每日生成日志文件daily_file_sink 每天定时产生文件日志 支持控制台日志输出 可选的异步日志 支持日志输出级别 可自定义日志格式 二.基本使用 1.直接打印日志到console auto console1 = spd::stdout_logger_mt("console1"); console1->error("Some error message with arg{}..", 1); //console2 的module...