spdlog::rotating_logger_mt 的主要功能是创建一个可以循环输出的日志文件。当日志文件达到指定的大小时,它会自动创建一个新的日志文件,并将后续的日志写入新的文件中。同时,它还可以限制保留的日志文件的数量,当文件数量超过指定值时,会自动删除最旧的日志文件。
spdlog::init_thread_pool(10000,1);autofile_logger = spdlog::rotating_logger_mt<spdlog::async_factory>("file_logger","mylogs",1024*1024*5,100);inti =0; file_logger->set_level(spdlog::level::debug);while(i <1000000) { file_logger->debug("Async message #{}", i); i++; } spdlog...
// Create a file rotating logger with 5mb size max and 3 rotated files auto max_size = 1024*1024 * 5; auto max_files = 3; auto logger = spdlog::rotating_logger_mt("some_logger_name", "logs/rotating.txt", max_size, max_files); } 每日文件 每天指定时间生成一个新的日志文件: #inc...
logger->info("The value of x is: {}",x);logger->warn("The function returned an error: {}",error_message); 在上面的代码中,"{}" 表示一个占位符,它将被后面的参数替换。 除了基本的日志记录器外,Spdlog 还提供了许多其他类型的日志记录器。例如,您可以使用 "rotating_logger_mt" 创建一个自动滚...
auto console = spdlog::stdout_color_mt("console"); // 基于文件的简单日志 auto logger = spdlog::basic_logger_mt("basic_logger","logs/basic.txt"); // 基于滚动文件的日志,每个文件5MB,三个文件 auto logger = spdlog::rotating_logger_mt("file_logger","myfilename",1024*1024*5,3); ...
rotating_logger_mt rotating_logger_st 编译备注 spdlog跟大华SDK在Linux平台中,一起使用,会出现大量未定义的问题。究其原因是fmt\bundled\format.h文件中定义了 UINT和BOOL enumType{NONE,NAMED_ARG,// Integer types should go first,INT,UINT,LONG_LONG,ULONG_LONG,BOOL,CHAR,LAST_INTEGER_TYPE=CHAR,// foll...
auto logger = spdlog::basic_logger_mt('file','my_log.log'); logger->info('hello world'); return 0;} 运行结果如下: 创建滚动文件 Logger 可以设置日志文件的大小及数量限定: #include 'spdlog/spdlog.h'#include 'spdlog/sinks/rotating_file_sink.h'int main() { auto max_size = 1024*2;/...
具体如何解决的呢?spdlog有一个日志类型叫做rotating_logger_mt,看到名字你应该会恍然大悟。使用这个日志类型,我们可以设置单个日志文件的大小,轮转日志的数量。这样的话,当一个文件写到足够大小就会写下一个文件,直到写够足够数量就会覆盖第一个文件再开始写日志,简直完美解决我的问题。
auto file_logger = spd::rotating_logger_mt(“file_logger”, “logs/mylogfile”, 1048576 * 5, 3); for (int i = 0; i < 10; ++i) file_logger->info(“{} * {} equals {:>10}”, i, i, i * i); // // Create a daily logger – a new file is created every day on 2:30...
SPDLOG_LOGGER_ERROR(spdlog::default_logger_raw(), __VA_ARGS__);SPDLOG_LOGGER_ERROR(spdlog::get("daily_logger"), __VA_ARGS__) int main(int argc, char *argv[]) { // 按文件大小 //auto file_logger = spdlog::rotating_logger_mt("file_log", "log/log.log", 1024 * 1024 * 100, ...