end()); // 设置全局日志器 spdlog::set_default_logger(logger); spdlog::set_level(spdlog::level::info); // 设置日志级别 spdlog::flush_on(spdlog::level::info); // 设置自动刷新级别 } catch (const spdlog::spdlog_ex &ex) { fprintf(stderr, "日志初始化失败: %s ", ex.what());...
auto myLogger = spdlog::rotating_logger_mt("baseLogger", "logs/basic.log", 1024 * 100, 10); spdlog::set_default_logger(myLogger); myLogger->set_pattern("[%Y-%m-%d %H:%M:%S.%e][%l](%@): %v"); // 非通过宏输出的日志%@输出为空 myLogger->set_level(spdlog::level::info); m...
auto firstLogger = std::make_shared<spdlog::logger>("first", sharedFileSink); auto secondLogger = std::make_unique<spdlog::logger>("second", sharedFileSink); 格式 日志格式可以使用 (1) set_pattern(pattern_string) (2) 实现formatter的接口,然后调用set_formatter(std::make_unique()); 使用set...
set_default_logger(std::shared_ptr<logger> new_default_logger); // 设置日志器的线程池。// 通过设置日志器的线程池,可以让日志器在后台线程中执行写入日志的操作,从而减少主线程的阻塞时间,提高程序的性能和响应性。// 如果日志记录是同步进行的(默认情况下),日志消息的写入操作会在主线程中直接完成,可能...
spdlog::set_default_logger(log); } //单个日志记录器 std::shared_ptr<spdlog::logger> get_async_file_logger(std::string name) { auto log = spdlog::get(name); if (!log) { //指针为空,则创建日志记录器, log = spdlog::daily_logger_mt<spdlog::async_factory>(name, "logs/" + name ...
spdlog::set_default_logger(file_logger); } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 官方的代码大概知道怎么使用spdlog了,点个赞。但是可能会遇到一些问题,下面笔者遇到问题的记录。
可以看到spdlog::info中default_logger_raw()得到了默认logger的指针,然后顺理成章就调用info输出日志。默认logger的指针则来自registry对象中的default_logger_成员变量。registry是单例,所以获取registry对象使用的是静态方法registry::instance()。最后我们看到registry::registry()中创建了默认logger,选择的sink是ansicolor...
set_pattern(const std::string&):设置日志输出的内容格式。 set_level(level_enum): 设置日志输出的最低等级。 log(log_msg):由logger自动调用,外部不会主动调用。 日志记录器logger 一个logger对象中存储有多个sink,当调用logger的日志输出函数时,logger会调用自身存储的所有sink对象的log(log_msg) 函数进行输出...
());// 设置默认日志记录器为复合日志记录器spdlog::set_default_logger(multiLogger);// 设置日志级别spdlog::set_level(spdlog::level::debug);// 设置日志消息的格式// spdlog::set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%l] %v");// 记录日志消息spdlog::info("Hello, spdlog!");spdlog::error...
spdlog::info("Hello logger: msg number {}", i); } auto delta = high_resolution_clock::now() - start; auto delta_d = duration_cast<duration<double>>(delta).count(); spdlog::drop(log->name()); spdlog::set_default_logger(std::move(orig_default)); ...