Created
August 16, 2022 15:40
-
-
Save jimmy947788/e0ed245b36263fc8023c4a69a72601a1 to your computer and use it in GitHub Desktop.
方便使用 spdlog 設定
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_TRACE //一定要在 spdlog.h 之前定義 | |
#include <spdlog/spdlog.h> | |
#include <spdlog/async.h> | |
#include <spdlog/sinks/stdout_color_sinks.h> | |
#include <spdlog/sinks/daily_file_sink.h> | |
int main(){ | |
// 清掉已註冊logger | |
spdlog::drop_all(); | |
spdlog::init_thread_pool(8192, 1); | |
// 有顏色的stdout | |
auto stdout_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt >(); | |
stdout_sink->set_pattern("[multi_sink_example] [%^%l%$] %v"); | |
// 每天1:30切log檔案 | |
auto rotating_sink = std::make_shared<spdlog::sinks::daily_file_sink_mt>("G:\\eData\\mylog.txt", 1, 30); | |
rotating_sink->set_pattern("[%H:%M:%S] [%n] [%L] [TID:%t] [PID:%P] [%s(%#)::%!] %v"); | |
// 整併為一個log,先設定好等級或其他再註冊 | |
std::vector<spdlog::sink_ptr> sinks{ stdout_sink, rotating_sink }; | |
auto logger = std::make_shared<spdlog::async_logger>("loggername", sinks.begin(), sinks.end(), spdlog::thread_pool(), spdlog::async_overflow_policy::block); | |
logger->set_level(spdlog::level::trace); | |
// 每隔3秒輸出 | |
spdlog::flush_every(std::chrono::seconds(3)); | |
// 註冊logger | |
spdlog::register_logger(logger); | |
// 設為預設 這樣才能用巨集呼叫 | |
spdlog::set_default_logger(logger); /*** 必須要在註冊後才能設為預設 ***/ | |
SPDLOG_INFO("1234"); | |
SPDLOG_DEBUG("1234"); | |
SPDLOG_TRACE("1234"); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
確定用標準C++ 14的thread裡面是拿的到 source filename,function name, code line number