| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | 
							- #ifndef FMTLOG_H
 
- #define FMTLOG_H
 
- #include <chrono>
 
- #include "fmt/core.h"
 
- #include "fmt/chrono.h"
 
- #include "fmt/color.h"
 
- #include <regex>
 
- /**
 
-  * 说明:使用方式和使用fmt的print方式一样
 
-  *      输出格式如下
 
-  *      [2024-09-01 23:10:50][widget.cpp:52] 你好
 
-  */
 
- /* 取出文件名的正则表达式 */
 
- const std::regex _reg_file(R"(.*/([\S]*[\.][\S]*)$)");
 
- /* Debug输出 */
 
- #define FMTLOG_DEBUG(...) \
 
-     do{ \
 
-         auto _now = std::chrono::system_clock::now(); \
 
-         std::time_t _now_c = std::chrono::system_clock::to_time_t(_now); \
 
-         std::string _log_time = fmt::format("{:%Y-%m-%d %H:%M:%S}", fmt::localtime(_now_c)); \
 
-         std::string _log_file_src = __FILE__; \
 
-         auto _log_file = std::regex_replace(_log_file_src, _reg_file, "$1"); \
 
-         std::string _log_str = fmt::format(__VA_ARGS__); \
 
-         fmt::print(fg(fmt::color::blue), "[{}][{}:{}] {}\n",_log_time,_log_file ,__LINE__ ,_log_str); \
 
-     }while(0)
 
- /* 正常输出 */
 
- #define FMTLOG_INFO(...) \
 
-     do{ \
 
-         auto _now = std::chrono::system_clock::now(); \
 
-         std::time_t _now_c = std::chrono::system_clock::to_time_t(_now); \
 
-         std::string _log_time = fmt::format("{:%Y-%m-%d %H:%M:%S}", fmt::localtime(_now_c)); \
 
-         std::string _log_file_src = __FILE__; \
 
-         auto _log_file = std::regex_replace(_log_file_src, _reg_file, "$1"); \
 
-         std::string _log_str = fmt::format(__VA_ARGS__); \
 
-         fmt::print(fg(fmt::color::green), "[{}][{}:{}] {}\n",_log_time,_log_file ,__LINE__ ,_log_str); \
 
-     }while(0)
 
- /* Warn输出 */
 
- #define FMTLOG_WARN(...) \
 
-     do{ \
 
-         auto _now = std::chrono::system_clock::now(); \
 
-         std::time_t _now_c = std::chrono::system_clock::to_time_t(_now); \
 
-         std::string _log_time = fmt::format("{:%Y-%m-%d %H:%M:%S}", fmt::localtime(_now_c)); \
 
-         std::string _log_file_src = __FILE__; \
 
-         auto _log_file = std::regex_replace(_log_file_src, _reg_file, "$1"); \
 
-         std::string _log_str = fmt::format(__VA_ARGS__); \
 
-         fmt::print(fg(fmt::color::yellow), "[{}][{}:{}] {}\n",_log_time,_log_file ,__LINE__ ,_log_str); \
 
-     }while(0)
 
- /* 错误输出 */
 
- #define FMTLOG_ERROR(...) \
 
-     do{ \
 
-         auto _now = std::chrono::system_clock::now(); \
 
-         std::time_t _now_c = std::chrono::system_clock::to_time_t(_now); \
 
-         std::string _log_time = fmt::format("{:%Y-%m-%d %H:%M:%S}", fmt::localtime(_now_c)); \
 
-         std::string _log_file_src = __FILE__; \
 
-         auto _log_file = std::regex_replace(_log_file_src, _reg_file, "$1"); \
 
-         std::string _log_str = fmt::format(__VA_ARGS__); \
 
-         fmt::print(fg(fmt::color::red), "[{}][{}:{}] {}\n",_log_time,_log_file ,__LINE__ ,_log_str); \
 
-     }while(0)
 
- // void hello()
 
- // {
 
- //     auto now = std::chrono::system_clock::now();
 
- //     std::time_t now_c = std::chrono::system_clock::to_time_t(now);
 
- //     std::string _log_time = fmt::format("{:%Y-%m-%d %H:%M:%S}", fmt::localtime(now_c));
 
- //     fmt::print(fg(fmt::color::green), "Hello, {}!\n", _log_time);
 
- //     std::regex_replace("hello", _reg_file, "$1");
 
- // }
 
- #endif /* FMTLOG_H */
 
 
  |