std::shared_ptr<spdlog::logger> mylogger = spdlog::basic_logger_mt("spdlog1", "spdlog1.log"); // 设置日志格式. 参数含义: [日志标识符] [日期] [日志级别] [线程号] [文件名 函数名:行号] [数据] mylogger->set_pattern("[%n] [%Y-%m-%d %H:%M:%S.%e] [%l] [%t] [%s %!:%#] %v"); mylogger->set_level(spdlog::level::trace); spdlog::flush_every(std::chrono::seconds(5)); // 定期刷新日志缓冲区 SPDLOG_LOGGER_TRACE(mylogger, "Welcome to info spdlog. {}", "hello!"); SPDLOG_LOGGER_DEBUG(mylogger, "Welcome to info spdlog. {}", "hello!"); SPDLOG_LOGGER_INFO(mylogger, "Welcome to info spdlog. {}", "hello!"); SPDLOG_LOGGER_ERROR(mylogger, "Welcome to info spdlog. {}", "hello!"); // 结束程序前刷新日志 mylogger->flush();
}
打印trace及以上等级的日志信息,利用SPDLOG_LOGGER_INFO(mylogger, “Welcome to info spdlog. {}”, “hello!”);方法可以打印所在位置、行数。除了设置mylogger->set_level(spdlog::level::trace);还要设置一个宏(第一个宏)。
std::shared_ptr<spdlog::logger> mylogger = spdlog::basic_logger_mt("spdlog1", "spdlog1.log"); // 设置日志格式. 参数含义: [日志标识符] [日期] [日志级别] [线程号] [文件名 函数名:行号] [数据] mylogger->set_pattern("[%n] [%Y-%m-%d %H:%M:%S.%e] [%l] [%t] [%s %!:%#] %v"); mylogger->set_level(spdlog::level::trace); spdlog::flush_every(std::chrono::seconds(5)); // 定期刷新日志缓冲区 mylogger->trace("Welcome to info spdlog!"); mylogger->debug("Welcome to info spdlog!"); mylogger->info("Welcome to info spdlog!"); mylogger->warn("Welcome to info spdlog!"); mylogger->error("Welcome to info spdlog!"); mylogger->critical("Welcome to info spdlog!"); // 刷新 mylogger->flush_on(spdlog::level::debug); // 结束程序前刷新日志 mylogger->flush();
# gcc attribute_deprecated.c -o test attribute_deprecated.c: In function ‘main’: attribute_deprecated.c:33: warning: ‘variable_old’ is deprecated(declared at attribute_deprecated.c:20) attribute_deprecated.c:35: warning: ‘function_old’ is deprecated (declared at attribute_deprecated.c:25)