log_msg(log_clock::time_point log_time, source_loc loc, string_view_t logger_name, level::level_enum lvl, string_view_t msg); log_msg(source_loc loc, string_view_t logger_name, level::level_enum lvl, string_view_t msg); log_msg(string_view_t logger_name, level::level_enum lv...
template<typename... Args>voidlog(level::level_enum lvl,format_string_t<Args...> fmt, Args &&... args){log(source_loc{}, lvl, fmt,std::forward<Args>(args)...);// source_loc为空} template<typename T>voidlog(level::level_enum lvl,constT &msg){log(source_loc{}, lvl, msg);/...
string_view_t msg);//增加日志等级作为参数传入-->voidlog(source_loc loc, level::level_enum lvl, string_view_t msg);//增加文件名、函数名、文件行号作为参数传入-->voidlog(source_loc loc, level::level_enum lvl, string_view_t msg);//将日志信息封装至details::log_msg结构体中-->voidlogger...
改代码基于C++17,C++20新增了source_location,可以获取行号,文件名等信息,但是可以使用C++17自己实现一个, 如果编译器支持C++20,可以进行简单改造。 classSourceLocation{public:constexprSourceLocation(constchar*fileName=__builtin_FILE(),constchar*funcName=__builtin_FUNCTION(),std::uint32_tlineNum=__buil...
959244b .github bench cmake example include/spdlog cfg details fmt sinks async.h async_logger.h common.h formatter.h fwd.h logger.h pattern_formatter.h source_loc.h spdlog.h stopwatch.h tweakme.h version.h logos scripts src tests ...
c++ 20 added std::source_location which provides the current file, line, collumn and function name. as I understand the SPDLOG_info ... macros are only needed to get this informations, so it would be nice to replace the macros with const...
(){returnlogPtr;}private:std::shared_ptr<spdlog::logger>logPtr;};#defineINITLOG(path)BaseLog::getInstance()->init(path)//参见SPDLOG_LOGGER_CALL#defineSPDLOG_BASE(logger,level,...)(logger)->log(spdlog::source_loc{__FILE__,__LINE__,__func__},level,__VA_ARGS__)#defineTRACELOG(.....
(spdlog::source_loc{__FILE__,__LINE__,SPDLOG_FUNCTION},level,__VA_ARGS__)#defineLogTrace(...)SPDLOG_LOGGER_CALL_(spdlog::level::trace,__VA_ARGS__)#defineLogDebug(...)SPDLOG_LOGGER_CALL_(spdlog::level::debug,__VA_ARGS__)#defineLogInfo(...)SPDLOG_LOGGER_CALL_(spdlog::level::...
voidlog(source_loc loc, level::level_enum lvl,format_string_t<Args...> fmt, Args &&... args); template<typename... Args> voidlog(level::level_enum lvl,format_string_t<Args...> fmt, Args &&... args); // ... template<typename... Args> ...
template<typenameT>voidlog(source_loc loc, level::level_enum lvl,constT &msg) {log(loc, lvl,"{}", msg); }// 因为spdlog::info(num);可以等价为spdlog::info("{}", num);,所以这里加了一个“{}” template<typename... Args>