cpp-logging

std::shared_ptr<spdlog::logger> m_logger;

try
{
// Create a daily logger - a new file is created every day on 2:30am, save 60 days log
auto logger = spdlog::daily_logger_mt("daily_logger", "logs/daily", 23, 59, false, 60);
g_logger->set_level(spdlog::level::level_enum(logLevel));
logger->flush_on(spdlog::level::info);
logger->info("infor message");
logger->error("Some error message with arg: {}", 1);
logger->critical("Support for int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}", 42);

spdlog::info("Hello, {}!", "World");
logger->info("Hello {} {} !!", "param1", 123.4);

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");

logger->flush();
}
catch (const spdlog::spdlog_ex& ex)
{
std::cout << "Log initialization failed: " << ex.what() << std::endl;
}

// 如果存在会返回实例,否则返回空
m_logger = spdlog::get("daily_logger");
if (m_logger == nullptr)
{
m_logger = spdlog::daily_logger_mt("daily_logger", "logs/daily", 23, 59, false, 60);
g_logger->set_level(spdlog::level::level_enum(logLevel));
g_logger->flush_on(spdlog::level::level_enum(logLevel));
m_logger->info("m_logger is started.");

}

// Release and close all loggers
spdlog::drop_all();

// 或者单独drop某个logger
spd::drop("console");
spd::drop("basic_logger");