只需要包含头文件
- 初始化log 对象,并注册
#include "spdlog/spdlog.h"
#include "spdlog/sinks/daily_file_sink.h"
void initialSpdloger()
{
try
{
static auto daily_sink = std::make_shared<spdlog::sinks::daily_file_sink_mt>("logs/log.txt", 23, 59);
// create synchronous loggers
static auto sw_logger = std::make_shared<spdlog::logger>("sw", daily_sink);
static auto hw_logger = std::make_shared<spdlog::logger>("hw", daily_sink);
static auto net_logger = std::make_shared<spdlog::logger>("net", daily_sink);
// globally register the loggers so the can be accessed using spdlog::get(logger_name)
spdlog::register_logger(sw_logger);
spdlog::register_logger(hw_logger);
spdlog::register_logger(net_logger);
}
catch (const spdlog::spdlog_ex& ex)
{
std::cout << "Log initialization failed: " << ex.what() << std::endl;
}
}
- 使用方法
void FormReport::daily_example()
{
// Create a daily logger - a new file is created every day on 2:30am
auto logger = spdlog::get("sw");
spdlog::info("in daily_example.");
logger->info("test sw info log.");
spdlog::get("sw")->warn("test sw warn log.");
spdlog::get("sw")->error("test sw warn log.");
spdlog::get("hw")->info("test hw info log.");
spdlog::get("hw")->error("test hw error log.");
spdlog::get("hw")->warn("test hw error log.");
}
// basic spdlog manual
void FormReport::testSpdLog()
{
spdlog::info("Welcome to spdlog!");
spdlog::error("Some error message with arg: {}", 1);
spdlog::warn("Easy padding in numbers like {:08d}", 12);
spdlog::critical("Support for int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}", 42);
spdlog::info("Support for floats {:03.2f}", 1.23456);
spdlog::info("Positional args are {1} {0}..", "too", "supported");
spdlog::info("{:<30}", "left aligned");
spdlog::set_level(spdlog::level::debug); // Set global log level to debug
spdlog::debug("This message should be displayed..");
// change log pattern
spdlog::set_pattern("[%H:%M:%S %z] [%n] [%^---%L---%$] [thread %t] %v");
// Compile time log levels
// define SPDLOG_ACTIVE_LEVEL to desired level
SPDLOG_TRACE("Some trace message with param {}", 42);
SPDLOG_DEBUG("Some debug message");
}