base_sink &operator=(base_sink &&) = delete;voidlog(constdetails::log_msg &msg)final;// 接收用户log消息voidflush()final;// 冲刷用户log消息(到目标文件)voidset_pattern(conststd::string&pattern)final;// 用模式串设置模式, 使用默认的forma
#include"spdlog/spdlog.h"#include<iostream>intmain(){autofileLogger=spdlog::basic_logger_mt("fengyuzaitu","test.log");//fileLogger->flush_on(spdlog::level::info);//调用情况下立即刷新日志到磁盘std::string strURL="fengyuzaitu51.cto";intnFirstTime=1;fileLogger->info("Welcome to {0} {...
using filename_t = std::wstring; // allow macro expansion to occur in SPDLOG_FILENAME_T // allow macro expansion to occur in SPDLOG_FILENAME_T #define SPDLOG_FILENAME_T_INNER(s) L##s #define SPDLOG_FILENAME_T(s) SPDLOG_FILENAME_T_INNER(s) ...
template<typename T>voidlog(level::level_enum lvl,constT &msg){log(source_loc{}, lvl, msg);// source_loc为空, T类型能转换为格式串}// T cannot be statically converted to format string (including string_view/wstring_view)template<classT,typenamestd::enable_if<!is_convertible_to_any_form...
std::wstring(full_path) : std::wstring(); }@@ -109,37 +109,36 @@ spdlog::filename_t::value_type find_non_existing_drive() { std::string root_path = std::string(1, drive) + ":\\"; UINT drive_type = GetDriveTypeA(root_path.c_str());...
它提供了向流、标准输出、文件、系统日志、调试器等目标输出日志的能力。它支持的平台包括Windows、Linux...
// 注册logger对象SPDLOG_INLINEvoidregistry::register_logger(std::shared_ptr<logger> new_logger){std::lock_guard<std::mutex>lock(logger_map_mutex_);// 由于是public接口,先获得锁,再对loggers_进行操作register_logger_(std::move(new_logger)); ...
inline std::string filename_to_str(const filename_t &filename) { std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> c; return c.to_bytes(filename); } #else using filename_t = std::string; #define SPDLOG_FILENAME_T(s) s #endif using log_clock = std::chrono::system_...
sinks并不是一个类,而是一系列类,以基类-派生类形式组织,一个sink派生类代表了一种输出log消息方式,输出目标可以是普通文件stdout、stderr,或者syslog等等。sink系列类主要负责从logger接收用户log消息,按指定模式(pattern)进行格式化(format),得到一条完整的、格式化后的log消息,然后将其写到目标文件。
using filename_t = std::wstring; #else using filename_t = std::string; #endif #define SPDLOG_CATCH_AND_HANDLE \ catch (const std::exception &ex) \ { \ _err_handler(ex.what()); \ } \ catch (...) \ { \ _err_handler("Unknown exeption in logger"); \ } } // namespace ...